diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/2-1-0.json b/au.org.access-nri/tracking_services/release_provenance/telemetry/2-1-0.json new file mode 100644 index 0000000..ec42379 --- /dev/null +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/2-1-0.json @@ -0,0 +1,175 @@ +{ + "$id": "https://raw.githubusercontent.com/ACCESS-NRI/schema/main/au.org.access-nri/tracking_services/release_provenance/telemetry/2-0-1.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Telemetry data for release provenance", + "description": "Schema for JSON payload sent to tracking_services release_provenance database", + "type": "object", + "properties": { + "service": { + "type": "string" + }, + "version": { + "type": "string", + "const": "2-0-0" + }, + "telemetry": { + "type": "object", + "properties": { + "model.name": { + "type": "string" + }, + "model.deployment_repository_url": { + "type": "string" + }, + "model.hive_docs_url": { + "type": "string" + }, + "model_deployment.version": { + "type": "string" + }, + "model_deployment.status": { + "type": "string" + }, + "model_deployment.released_at": { + "type": "string" + }, + "model_deployment.release_url": { + "type": "string" + }, + "deployment_targets": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "deployment_target.name": { + "type": "string" + }, + "deployment_target.spack_version": { + "type": "string" + }, + "deployment_target.spack_git_hash": { + "type": "string" + }, + "deployment_target.spack_config_version": { + "type": "string" + }, + "deployment_target.spack_config_git_hash": { + "type": "string" + }, + "deployment_target.builtin_spack_packages_version": { + "type": "string" + }, + "deployment_target.builtin_spack_packages_git_hash": { + "type": "string" + }, + "deployment_target.access_spack_packages_version": { + "type": "string" + }, + "deployment_target.access_spack_packages_git_hash": { + "type": "string" + }, + "deployment_target.module_use_location": { + "type": "string" + }, + "spack_model.name": { + "type": "string" + }, + "spack_model.spack_package_hash": { + "type": "string" + }, + "spack_model.module_load_command": { + "type": "string" + }, + "spack_model_components": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "spack_package_hash": { + "type": "string" + }, + "version": { + "type": "string" + }, + "commit_hash": { + "type": "string", + "minLength": 40 + }, + "install_location": { + "type": "string" + }, + "repository_url": { + "type": "string" + }, + "md5s": { + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "md5": { + "type": "string" + } + }, + "required": [ + "path", + "md5" + ] + } + } + }, + "required": [ + "name", + "spack_package_hash", + "version", + "commit_hash", + "install_location", + "repository_url", + "md5s" + ] + } + } + }, + "required": [ + "deployment_target.name", + "deployment_target.spack_version", + "deployment_target.spack_git_hash", + "deployment_target.spack_config_version", + "deployment_target.spack_config_git_hash", + "deployment_target.builtin_spack_packages_version", + "deployment_target.builtin_spack_packages_git_hash", + "deployment_target.access_spack_packages_version", + "deployment_target.access_spack_packages_git_hash", + "deployment_target.module_use_location", + "spack_model.name", + "spack_model.spack_package_hash", + "spack_model.module_load_command", + "spack_model_components" + ] + } + ] + } + }, + "required": [ + "model.name", + "model.deployment_repository_url", + "model_deployment.version", + "model_deployment.status", + "model_deployment.released_at", + "model_deployment.release_url", + "deployment_targets" + ] + } + }, + "required": [ + "service", + "version", + "telemetry" + ] + } diff --git a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md index 029a252..5fbb167 100644 --- a/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md +++ b/au.org.access-nri/tracking_services/release_provenance/telemetry/CHANGELOG.md @@ -11,3 +11,7 @@ We need to keep track of both `ACCESS-NRI/access-spack-packages` and `spack/spac * Add `deployment-target.access_spack_packages_[version|git_hash]` * Add `deployment-target.builtin_spack_packages_[version|git_hash]` * Remove `deployment-target.spack_packages_[version|git_hash]` + +## 2-1-0 + +* We also need to keep track of components git hashes, so we have immutable provenance of model components - for example, tags can be moved. This is now required, but the lack of `additionalProperties: false` means some old data would have been interoperable with this change.