{
  "catalog_version": "1",
  "channel": "stable",
  "sequence": 14,
  "generated_at": "2026-07-07T00:00:00Z",
  "expires_at": "2030-12-31T23:59:59Z",
  "modules": [
    {
      "module_id": "files",
      "name": "Files",
      "description": "Managed file spaces and campaign attachment integration.",
      "version": "0.1.4",
      "action": "install",
      "python_package": "govoplan-files",
      "python_ref": "govoplan-files @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git@v0.1.4",
      "webui_package": "@govoplan/files-webui",
      "webui_ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.4",
      "migration_safety": "forward_only",
      "migration_notes": "Database rollback requires restoring the pre-update snapshot.",
      "migration_after": ["access"],
      "migration_before": ["campaigns"],
      "migration_tasks": [
        {
          "task_id": "backfill_spaces",
          "phase": "post_migration_backfill",
          "summary": "Backfill file spaces after the schema migration.",
          "task_version": "1",
          "safety": "forward_only",
          "idempotent": true,
          "timeout_seconds": 300
        }
      ],
      "current_version_min": "0.1.0",
      "current_version_max_exclusive": "0.2.0",
      "bridge_release": true,
      "bridge_notes": "Keeps the 0.1.x campaign attachment interface while introducing the 0.2.x contract.",
      "allow_downgrade": false,
      "allow_same_version": false,
      "recovery_tested": true,
      "recovery_notes": "Snapshot restore and forward recovery were rehearsed on the release candidate dataset.",
      "provides_interfaces": [
        {
          "name": "files.campaign_attachments",
          "version": "1.4.0"
        }
      ],
      "requires_interfaces": [
        {
          "name": "campaigns.access",
          "version_min": "1.0.0",
          "version_max_exclusive": "2.0.0",
          "optional": true
        }
      ],
      "artifact_integrity": {
        "python": {
          "ref": "govoplan-files @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git@v0.1.4",
          "sha256": "<sha256 of the resolved Python artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-files-0.1.4.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-files-0.1.4.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.4"
        },
        "webui": {
          "ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-files.git#v0.1.4",
          "sha256": "<sha256 of the resolved WebUI package artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-files-webui-0.1.4.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-files-webui-0.1.4.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.4"
        }
      },
      "license_features": ["module.files"],
      "tags": ["official", "service-module"]
    },
    {
      "module_id": "mail",
      "name": "Mail",
      "description": "SMTP/IMAP profile management and read-only mailbox access.",
      "version": "0.1.4",
      "action": "install",
      "python_package": "govoplan-mail",
      "python_ref": "govoplan-mail @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git@v0.1.4",
      "webui_package": "@govoplan/mail-webui",
      "webui_ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.4",
      "provides_interfaces": [
        {
          "name": "mail.campaign_delivery",
          "version": "0.2.0"
        }
      ],
      "requires_interfaces": [
        {
          "name": "campaigns.access",
          "version_min": "0.1.0",
          "version_max_exclusive": "0.2.0",
          "optional": true
        }
      ],
      "artifact_integrity": {
        "python": {
          "ref": "govoplan-mail @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git@v0.1.4",
          "sha256": "<sha256 of the resolved Python artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-mail-0.1.4.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-mail-0.1.4.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.4"
        },
        "webui": {
          "ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-mail.git#v0.1.4",
          "sha256": "<sha256 of the resolved WebUI package artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-mail-webui-0.1.4.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-mail-webui-0.1.4.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.4"
        }
      },
      "license_features": ["module.mail"],
      "tags": ["official", "service-module"]
    },
    {
      "module_id": "dashboard",
      "name": "Dashboard",
      "description": "Configurable user home assembled from module-provided widgets.",
      "version": "0.1.6",
      "action": "install",
      "python_package": "govoplan-dashboard",
      "python_ref": "govoplan-dashboard @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git@v0.1.6",
      "webui_package": "@govoplan/dashboard-webui",
      "webui_ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git#v0.1.6",
      "artifact_integrity": {
        "python": {
          "ref": "govoplan-dashboard @ git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git@v0.1.6",
          "sha256": "<sha256 of the resolved Python artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-dashboard-0.1.6.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-dashboard-0.1.6.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.6"
        },
        "webui": {
          "ref": "git+ssh://git@git.add-ideas.de/GovOPlaN/govoplan-dashboard.git#v0.1.6",
          "sha256": "<sha256 of the resolved WebUI package artifact>",
          "sbom_url": "https://govoplan.add-ideas.de/sbom/govoplan-dashboard-webui-0.1.6.spdx.json",
          "provenance_url": "https://govoplan.add-ideas.de/provenance/govoplan-dashboard-webui-0.1.6.intoto.jsonl",
          "git_ref": "refs/tags/v0.1.6"
        }
      },
      "license_features": ["module.dashboard"],
      "tags": ["official", "platform-module"]
    }
  ],
  "signatures": [
    {
      "algorithm": "ed25519",
      "key_id": "release-key-1",
      "value": "<base64 signature over this JSON object without signature or signatures fields>"
    },
    {
      "algorithm": "ed25519",
      "key_id": "release-key-2",
      "value": "<optional second signature for key rotation>"
    }
  ]
}
