Operations Specification (ops-spec.json)
Several third-party dependencies are required to build and deploy the Self-Managed Commerce source code. These are documented in Supported Technologies. However, rather than hard-coding these dependencies into operations tooling, the Self-Managed Commerce source provides a machine-readable file with these details for use by build and deployment tools, such as CloudOps for Kubernetes.
File Specification
The machine-readable operations specification file is in JSON format. It has the following structure:
javaversion: The Java version required for builds and at runtime.downloadUrl: The URL to download a Linux x86 64-bit module of the Azul Zulu JDK.downloadChecksum: A SHA1 checksum of the downloaded file for tamper verification.path: The expected path to the JDK once the module is installed.jvmRuntimeArguments: The JVM arguments that should be passed to the application server at runtime.
mavenversion: The Maven version required for builds.downloadUrl: The URL to download a tar gunzip archive of Maven.downloadChecksum: A SHA1 checksum of the downloaded file for tamper verification.path: The expected path contained within the tar archive.
applicationServerversion: The Tomcat version required at runtime.downloadUrl: The URL to download a tar gunzip archive of Tomcat.downloadChecksum: A SHA1 checksum of the downloaded file for tamper verification.
activemqversion: The ActiveMQ version required at runtime.downloadUrl: The URL to download a tar gunzip archive of ActiveMQ.downloadChecksum: A SHA1 checksum of the downloaded file for tamper verification.
databases- Array of database options with the following structure:
id: A unique identifier for the database option.type: The database type; usuallymysql,postgresql, ororacle.deployment: The AWS deployment option; usuallyrdsoraurora.versionChoice: The database version choice for the user. Not a complete version specification; just what is needed to provide the user with a version choice.mavenProfile: The Maven profile to pass to the build for using this database in a development environment.awsDbEngine: The database engine version supported by the AWS. The parameter value must be accurate per AWS documentation. See the "EngineVersion" section of AWS::RDS::DBInstance.
- Array of database options with the following structure:
healthchecksreadinessPath: The path to the health check readiness endpoint for an Elastic Path web app.livenessPath: The path to the health check liveness endpoint for an Elastic Path web app.
Availability
The ops-spec.json file can be accessed from two locations:
- In the
devops/ops-spec/src/main/resources/ops-spec.jsonfile in theep-commercesource code repository, and is the primary instance. - A copy of the above file is put into
ops-spec.jsonin the root of the deployment package at build time.