Skip to content

Latest commit

 

History

History
95 lines (71 loc) · 8.14 KB

File metadata and controls

95 lines (71 loc) · 8.14 KB

Creating the CONFIGfile

This is the step by step cookbook for creating the CONFIGfile.

Please read the following conceptual documents before working on the CONFIGfile:

File Handling

  • Assure that there is a copy of the latest template of the CONFIGfile in the develop branch of your application's repository. The latest ApplicationPattern+config.json can be downloaded from the ApplicationPattern repository.
  • Rename the file, by replacing "ApplicationPattern" by your application's name.

Preparation

  • If not yet existing, create an Issue for elaborating the CONFIGfile.
  • Open a local feature branch for elaborating the CONFIGfile.

Individualization

General

Please, be careful while altering the existing entries in the CONFIGfile.
Most of them will require just a little adjustment.
Very few need to be deleted.
Several need to be added, and it is recommended to copy and paste the existing objects.

  • Use CTRL+h for replacing 'xx-1-0-0' by the abbreviation of your application's name and release number e.g. 'ro-2-0-1'.
  • Use CTRL+f for searching '"http-server-interface-1-0:http-server-interface-pac":', and update the information about your application. Keep being consistent with the ServiceList.
  • Use CTRL+f for searching '"tcp-server-interface-1-0:tcp-server-interface-pac":', and update the fake TCP port of your application. Keep being consistent with the ServiceList. It might be required to add or delete a TcpServer instance.

Profiles

  • Compare the list of existing Profile instances with the content of your ProfileInstanceList.
  • Delete existing Profile instances that do not match your ProfileInstanceList.
  • Copy and Paste existing instances of ActionProfile and ResponseProfile and adapt them to the content of your ProfileInstanceList until those two kinds of Profiles are totally consistent with your ProfileInstanceList.
  • Copy and Paste existing instances of FileProfile (e.g. TypeApprovalRegister), IntegerProfile (e.g. RegistryOffice) and StringProfile (e.g. OperationKeyManagement) from existing applications into your CONFIGfile and adapt them to the content of your ProfileInstanceList until also those kinds of Profiles are totally consistent with your ProfileInstanceList.
  • If you would have defined individual kinds of Profile in your ProfileList and your ProfileInstanceList:
    • Copy an existing instance of Profile (take care that you pick one that contains both a capability and a configuration section).
    • Delete the existing attributes from the capability and configuration sections.
    • Adapt the UUID to the pattern you defined in your ProfileList.
    • Update the value of the ProfileName attribute in the CONFIGfile in accordance with the ProfileName attribute from the ProfileList. Regard that the value has to be updated at two separate positions, the name space and the enumeration value. Regard the syntax!
    • Replace the profile name in the attributes' names of the pac (name space and attribute), the capability and the configuration objects.
    • Add the read-only attributes to the capability object.
    • Add the read-write attributes to the configuration object.
  • After you created all instances of Profile in accordance with your ProfileInstanceList, double check the attributes values.
  • In a last step, adapt the sequence numbers in the UUIDs.

LogicalTerminationPoints

  • Compare the list of existing OperationServers with the content of your ServiceList.

  • Delete existing OperationServers that do not match your ServiceList.

  • Copy and Paste an existing instance of OperationServer and adapt the value of the OperatioName attribute until the list of OperationServers in the CONFIGfile is consistent with your ServiceList.

  • Update the API segment and the sequence number in the UUIDs until they are matching your ServiceList.

  • Search for 'http-s-000",' and put the same UUIDs into the clientLtp list attribute.

  • Check the HttpClients in the CONFIGfile and delete all stacks of OperationClients, HttpClients and TcpClients that belong to HttpClients that are not required in your ServiceList.

  • Step through the HttpClients in your ServiceList and check, whether all the required OperationClients are available in the CONFIGfile. If not, copy a stack of one OperationClient, an HttpClient and a TcpClient, adapt the values of the applicationName and releaseNumber attributes at the HttpClient and the fake TCP port at the TcpClient. Take care that the UUIDs at the three new objects get update with the official abbreviation of the application's name.

  • Double check that all the HttpClients of the ServiceList are now covered in the same ordering as in the CONFIGfile.

  • Step through the list of HttpClients in the CONFIGfile and check, whether all the OperationClients from the ServiceList are available in the CONFIGfile. If not, copy an existing OperationClient object on the same HttpClient and replace the value of the operationName attribute. Delete obsolete OperationClient objects. Update the clientLtp list attribute at the HttpClient objects.

  • After you updated the OperationClients at all the HttpClients, double check whether the ordering of the OperationClients is consistent with the ServiceList.

  • After assuring that, double check, whether the abbreviation of the application's name inside the UUIDs of all the OperationClients, HttpClients and TcpClients is correct.

  • Finally, double check the sequence number inside the UUIDs of all the OperationClients, HttpClients and TcpClients.

  • Also ensure that the operationKey fields of OperationClients and OperationServers are set correctly.

ForwardingConstructs

  • Compare the list of existing ForwardingConstructs in the CONFIGfile with the content of your ForwardingList.
  • Delete existing ForwardingConstructs that do not match your ForwardingList.
  • Copy and Paste an existing instance of ForwardingConstruct and adapt the value of the ForwardingName and the ForwardingKind attributes until the list of ForwardingConstructs in the CONFIGfile is consistent with the Forwardings in your ForwardingList.
  • Step through the list of Forwardings in the ForwardingList and assure that the exact same ForwardingConstructPorts are available in the ForwardingConstructs in the CONFIGfile, too. Focus on correct UUID of the referenced LTP and port direction.
  • Review the local IDs of all ForwardingConstructPorts.
  • Get through the UUIDs of the referenced LTPs and check by CTRL+f, whether the found OperationServer/OperationClient from the CONFIGfile matches the one from the ForwardingList.
  • Review the UUIDs of all ForwardingConstructs.

Validation and Finalization

  • Save the resulting CONFIGfile.
  • If VSCode would detect any syntax errors in the JSON, the name of the *+config.json would now be marked in red in the file explorer.
  • If you would now klick on the error indicator ...
    Error Indicator
  • ... the list of errors would open ...
    Error List
  • ... and you could click on the entries in the list to jump into the faulty line for making the corrections.
  • After correcting all mistakes, save again and Commit to your local feature branch.
  • Push your local feature branch to the remote repository.
  • Create a Pull-Request.
  • Select a Reviewer from the team.
  • Assign the Pull-Request to yourself.