publish / solution
Three paths, one human accountability boundary

Prepare. Deploy separately. Keep release authority independent.

Path A is the default: the toolkit builds a reviewed readiness package and the customer platform team owns deployment. Paths B and C are optional reference material. Neither is an active deployment workflow or a promise of production readiness.

Choose the scope you need
PathUse it whenDelivered hereNot included
A — readiness handoff (default)You need a controlled, evidence-backed transition from prototype to a platform-owned deployment decision.Risk-tiered issues, automated repository signals, a handoff package, and explicit human review/acceptance records.Cloud provisioning, release authorization, or a claim that issues/labels prove approval.
B — Azure starter referencesYour platform team wants examples to adapt for an independently governed Azure workload.Illustrative identity boundary, service-selection questions, incomplete pipeline/IaC fragments, prerequisites, cost drivers, and rollback responsibilities.Runnable workflow, deployable template, cloud resources, credentials, or production support.
C — protected release integrationYou need a separately enforced path from reviewed evidence to a release platform.Reference control design for current commits, separation of duties, fresh evidence, revocation, and failure handling.An implemented approval/deployment engine or authorization based on GitHub issue state.
Default · implemented

Path A: reviewed readiness package, platform-owned deployment

  1. Submit a publication request in the hub. A maintainer reviews and authorizes the exact solution repository.
  2. Work the stable parent/control issues there: roles, prerequisites, steps, evidence examples, and guide links are included.
  3. Complete controls with safe evidence links; validate the original request. Checks bind to the default-branch commit and fail if it changes during validation. FAIL and UNKNOWN block readiness.
  4. Use the commit-bound handoff package for named governance review and separate platform acceptance. Both decisions remain pending until humans record them.
  5. The platform team independently deploys through protected release controls. Changed scope, evidence/commit, policy, or expired exceptions require fresh review.

Prepared, Reviewed, and Accepted are distinct stages, never inferred from labels. Labels are advisory, not release authorization.

A Low tier is not an exemption: it still requires every applicable baseline control and evidence review. Marking an environment prod is human context, not an automatic tier change; platform owners must still verify production identity, network, data, monitoring, rollback, and release protections.

The automation cannot prove live Azure identity, network, data handling, alert remediation, evidence quality, or deployment. Reviewers must verify those with the responsible owners. Reviewer responsibilities · Reassessment, exception, and retirement routing.

Optional · reference only

Path B: Azure deployment starter references

These examples are deliberately incomplete, non-production, and not connected to an executable deployment workflow. They are prompts for a customer platform team to design its own solution. Do not paste real tenant, subscription, client, or resource identifiers into the public example.

Identity and trust boundary

Service selection questions

Choose a hosting service only after documenting workload shape, network/data requirements, region, scale, supported runtime, identity features, availability objectives, and the platform team's operating model. A simple web/API workload may fit a managed web or container service; event-driven workloads may fit a serverless service. Validate current feature and regional availability with Azure documentation and the landing-zone owner before deciding.

Illustrative fragments — not deployable

# PSEUDOCODE ONLY — complete these checks in your approved platform repository.
deployment_identity:
  federation_subject: <exact-reviewed-repository-and-protected-environment-claim>
  permissions: <minimum-resource-scope-approved-by-cloud-owner>
runtime_identity:
  permissions: <separate-minimum-data-and-service-access>
production_environment:
  reviewers: <independent-authorized-team>
  bypass: <disabled-or-explicitly-governed>
rollback:
  artifact: <previous-reviewed-immutable-artifact>
  owner: <named-platform-team-alias>
# INCOMPLETE PIPELINE OUTLINE — no triggers, actions, credentials, or deploy command.
permissions:
  contents: read
  id-token: write
jobs:
  validate:
    # Build/test a reviewed commit and publish an immutable artifact.
  production:
    # Require a protected environment; re-check evidence and exact commit.
    # Authenticate using the reviewed federated identity only after approval.
    # Deploy, verify health, and execute the documented rollback if needed.
// BICEP MODULE CALL FRAGMENT — intentionally non-deployable.
// The referenced reviewed module is not included in this repository.
module workload './modules/approved-workload.bicep' = {
  name: 'workload'
  params: {
    region: '<platform-approved-region>'
    runtimeIdentityResourceId: '<separately-reviewed-runtime-identity>'
    publicIngress: false
    diagnosticsWorkspaceId: '<approved-monitoring-workspace>'
  }
}

The placeholders are not resource IDs, the module file is deliberately absent, and no deployment workflow or Bicep deployment command is supplied. A platform owner must provide a reviewed module that enforces the approved network, identity, diagnostics, retention, and cost baseline.

Prerequisites, cost, and rollback ownership

Reference boundaries: Azure identity and deployment conversation. This repository does not create Azure resources or validate their live state.

Optional · reference architecture only

Path C: protected release integration

Use this design when a customer release service consumes readiness evidence. Keep the release decision inside an independently protected system, not a GitHub issue label or a generated comment.

Threats and required release controls

Failure caseIntegrating platform must enforce
Mutable labels/text or unverified issue closureInspect evidence independently. Bind request ID, repository, reviewed commit, catalog/policy version, artifact digest, environment, and timestamp; reject missing, unknown, stale, or mismatched inputs.
Self-approval or unclear authorityThe requester cannot approve their own release. Separate governance review, platform acceptance, and protected release authority. Verify live cloud trust, permissions, network, and rollback; workflow text proves none of these.
Evidence changes between approval and deploymentImmediately before release, reread request/policy/evidence; compare exact commit/artifact and confirm all checks PASS. Reject edits, open reassessments, expired exceptions, withdrawn evidence, revoked approvals, or changed permissions.
Revocation while deployment is queuedInvalidate decisions on commit/scope/catalog/policy changes, failed checks, evidence withdrawal, expiry, or reviewer revocation. Revoke queued authorization where possible; never wait for a daily sweep.
Concurrency, repeated callbacks, API/token failure, changed identity/membership, or partial deploymentStop before credential access when state or identity cannot be verified. Use stable rerun identifiers, safe retries, and explicit rollback. Audit decision-maker, evidence digest, time, failure, and manual recovery.

This is a design checklist, not a supplied policy engine. Threat-model, independently review, and test any implementation, including state changes between checking and using evidence (a time-of-check/time-of-use race).