{
  "schema_version": "nexuscrm.serviceification-bom/v10",
  "l0_engine": {
    "oci_repository": "ghcr.io/pingcap-inc/nexuscrm-l0-engine-release",
    "version": "dev-20260908-0.0.1-934b2862"
  },
  "services": {
    "mcp_worker": {
      "oci_repository": "ghcr.io/pingcap-inc/nexuscrm-mcp-worker",
      "source_repository": "pingcap-inc/nexuscrm-app-packs",
      "source_commit": "1c3722d7e8f4330caa9d179241307f400b0e22d6",
      "digest": "sha256:13870ac62acb794c2a21c6ad2df53097443dd879d1acbb60b8fbbef2e0fe4477"
    },
    "sfcrm_app_service": {
      "oci_repository": "ghcr.io/pingcap-inc/nexuscrm-sfcrm-appservice",
      "source_repository": "pingcap-inc/nexuscrm-app-packs",
      "source_commit": "fbb0db216c3db5c25c2b9eaa40d0056e64b37c43"
    }
  },
  "frontend": {
    "oci_repository": "ghcr.io/pingcap-inc/nexuscrm-frontend-assets",
    "nexuscrm_repository": "pingcap-inc/NexusCRM",
    "nexuscrm_commit": "ca80287498e07b49cada6f07c3fc93bf2b475615",
    "app_packs_repository": "pingcap-inc/nexuscrm-app-packs",
    "app_packs_commit": "fbb0db216c3db5c25c2b9eaa40d0056e64b37c43",
    "l2_repository": "pingcap-inc/nexuscrm-pingcap-pack",
    "l2_commit": "2148ab55b03ddc570a6d1551cce49ebb2b752fc5",
    "routing_mode": "direct-sfcrm"
  },
  "app_installation": {
    "app_id": "io.nexuscrm.sfcrm",
    "semantic_version": "0.75.0",
    "app_release_digest": "sha256:3ae3791b32b538ca1969f191a5ad162155aed0ee3d12b9ec33350101d25f76ff",
    "metadata_bundle_digest": "sha256:5466aa5533f047f1ab5dd5ce943537b145409b454bd72f643432f1fc5ac5deaa",
    "artifact": {
      "repository": "pingcap-inc/nexuscrm-app-packs",
      "commit": "fbb0db216c3db5c25c2b9eaa40d0056e64b37c43",
      "path": "releases/io.nexuscrm.sfcrm/0.75.0/app-package.json",
      "sha256": "sha256:8da134e0f33bd0b5e52815eb605e7548ac64e3025a1a3ef4da47d2542eaf3e78"
    },
    "publisher_attestation": {
      "repository": "pingcap-inc/nexuscrm-app-packs",
      "commit": "fbb0db216c3db5c25c2b9eaa40d0056e64b37c43",
      "path": "releases/io.nexuscrm.sfcrm/0.75.0/publisher-attestation.json",
      "sha256": "sha256:a99c9e581dc40e97d25c0974a6d0d3706ed521d8be40764d8d856f90cd27d8d0"
    },
    "publisher_verification_key": {
      "repository": "pingcap-inc/nexuscrm-app-packs",
      "commit": "fbb0db216c3db5c25c2b9eaa40d0056e64b37c43",
      "path": "releases/io.nexuscrm.sfcrm/0.75.0/publisher-public-key.json",
      "sha256": "sha256:ed62d05cf8781856943c9454b610fb9b06db4b492224260e1ae2145b45c0f8b0"
    },
    "capabilities": [
      {"capability_id": "io.nexuscrm.sfcrm.analytics-read.v1", "runtime_capability_id": "runtime.analytics.read-report.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.approval-lifecycle.v1", "runtime_capability_id": "runtime.approvals.execute.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.approval-read.v1", "runtime_capability_id": "runtime.approvals.read.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.audit-log-read.v1", "runtime_capability_id": "runtime.audit.read-log.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.bulk-ingest.v1", "runtime_capability_id": "runtime.records.bulk-ingest.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.effective-permissions.v1", "runtime_capability_id": "runtime.permissions.read-effective.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.flow-actions.v1", "runtime_capability_id": "runtime.automation.execute-flow.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.permission-authoring.v1", "runtime_capability_id": "runtime.permissions.authoring.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.private-list-views.v1", "runtime_capability_id": "runtime.list-views.private.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.query.v1", "runtime_capability_id": "runtime.records.query.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.record-files.v1", "runtime_capability_id": "runtime.files.authorized-content.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.record-mutation.v1", "runtime_capability_id": "runtime.records.mutate.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.recycle-bin-mutation.v1", "runtime_capability_id": "runtime.records.mutate-recycle-bin.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.recycle-bin-read.v1", "runtime_capability_id": "runtime.records.list-recycle-bin.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.related-list-counts.v1", "runtime_capability_id": "runtime.records.related-counts.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.search.v1", "runtime_capability_id": "runtime.search.records.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.ui-apps.v1", "runtime_capability_id": "catalog.consumer.app-metadata-view.v3"},
      {"capability_id": "io.nexuscrm.sfcrm.ui.record-access.v1", "runtime_capability_id": "runtime.records.evaluate-access.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.ui.record-defaults.v1", "runtime_capability_id": "runtime.records.preview-create-defaults.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.ui.record-view-attachments.v1", "runtime_capability_id": "runtime.records.resolve-attachment-sources.v1"},
      {"capability_id": "io.nexuscrm.sfcrm.ui.record-view-read.v1", "runtime_capability_id": "runtime.records.read-record-view.v1"}
    ]
  },
  "l2_metadata": {
    "repository": "pingcap-inc/nexuscrm-pingcap-pack",
    "commit": "2148ab55b03ddc570a6d1551cce49ebb2b752fc5",
    "path": "packs/NOT-EDIT-final-merged-packs",
    "tree_sha256": "sha256:66bbc95a7ce80cfe3ffa93b1aca8f2d28172e69ce65926ead73c7764633bfe50"
  },
  "catalog_consumers": {
    "handler_workload_id": "sfcrm-app-service",
    "integration_workload_id": "integration-service",
    "authorized_workload_ids": ["integration-service", "sfcrm-app-service"],
    "catalog_view_grants": [
      {"authorized_workload_id": "integration-service", "capability_id": "catalog.consumer.integration-binding-view.v1"}
    ],
    "runtime_capability_grants": [
      {"authorized_workload_id": "integration-service", "capability_id": "catalog.consumer.integration-binding-view.v1"},
      {"authorized_workload_id": "integration-service", "capability_id": "runtime.commands.accept.v1"},
      {"authorized_workload_id": "integration-service", "capability_id": "runtime.connected-mailboxes.authorize.v1"},
      {"authorized_workload_id": "integration-service", "capability_id": "runtime.outbound-intents.consume.v1"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.application-navigation.v1"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.approvals.read-notification-flows.v1"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.identity.session-lifecycle.v1"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.layout.authoring.v2"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.metadata.read-admin.v1"},
      {"authorized_workload_id": "sfcrm-app-service", "capability_id": "runtime.metadata.resolve-page-layout.v1"}
    ]
  },
  "execution": {
    "catalog_reconcile_config_schema": "nexuscrm.catalog-reconcile-config/v4",
    "catalog_reconcile_output_schema": "nexuscrm.catalog-reconcile-output/v3",
    "runtime_serving_config_schema": "nexuscrm.runtime-api-serving/v4",
    "runtime_worker_config_schemas": ["nexuscrm.runtime-worker-role/v3"],
    "runtime_work_activation_schema": "nexuscrm.runtime-work-ownership-activation/v1",
    "topology": "sfcrm_app_service>runtime_api>tidb;integration_service>runtime_api>tidb;runtime_worker>tidb;mcp_worker>runtime_api"
  },
  "runtime_worker_roles": [
    {"work_family": "runtime.audit-history-fanout.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.bulk-ingest.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.file-upload-lifecycle.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.permission-authoring-command-lifecycle.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.platform-command.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "parallelism": 8, "db_max_open_conns": 17, "db_max_idle_conns": 8, "shutdown_timeout": "10s"},
    {"work_family": "runtime.record-command-lifecycle.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "30s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.record-event-dispatch.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "parallelism": 15, "db_max_open_conns": 31, "db_max_idle_conns": 15, "shutdown_timeout": "10s", "processed_retention": "24h", "processed_cleanup_interval": "1h"},
    {"work_family": "runtime.rollup-delta.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"},
    {"work_family": "runtime.scheduled-flow.v1", "config_schema": "nexuscrm.runtime-worker-role/v3", "batch_size": 10, "poll_interval": "1s", "lease_duration": "30s", "retry_jitter_max": "1s", "max_attempts": 5, "db_max_open_conns": 4, "db_max_idle_conns": 2, "shutdown_timeout": "10s"}
  ]
}
