Skip to Content

For each event Prisma organises, we aim to set up minimal viable infrastructure to amplify facilitation capabilities. This is done by deploying (propagating) a stack of apps to partner hubs. From there, facilitation capabilities extend to all teams formed during the event.

Propagate is the operator tool for this process. It is a local CLI that collects deployment intent interactively, validates the whole stack, and provisions infrastructure via Pulumi .

What changed

The previous web-based wizard (potentialise.prisma.events) has been replaced by a CLI in the propagate monorepo. The new approach:

  • Writes manifests to disk (stack.yaml) instead of ephemeral browser state
  • Uses Pulumi for durable infrastructure state (no serverless polling)
  • Declares per-app contracts in app.manifest.yaml (capabilities, routes, env vars, dependencies)
  • Nests all apps under a shared host: https://{appSlug}.{eventCode}.{hostName}

Deployment authorisation is managed through wallet signature (propagate login) via the hosted auth app. GitHub forking uses a GitHub App installed on the operator’s target org — no personal access token required.

Current scope

The initial deployment target is two apps:

SlugRepoRole
docsdocs-secretDocumentation publishing and private API
timeliningtimeliningEvent data recording, ingest, and visualisation

Other apps (enact, enrol, evaluate) are catalogued but not yet deployable.

Documentation

  1. CLI reference — commands, prerequisites, quick start
  2. Environment variables — auth server, CLI, Pulumi, and deployed apps
  3. Manifestsstack.yaml, app.manifest.yaml, capabilities
  4. Workflow — end-to-end operator flow
  5. Neo4j provisioning — Railway Neo4j for timelining
  6. Forking — GitHub repo provisioning
  7. Validation — capability resolution and deploy order

Operator flow (summary)

propagate init # create .propagate/ workspace propagate login # wallet sign-in (browser) propagate create # interactive stack.yaml + values.yaml + GitHub App install propagate validate # resolve capabilities, write resolved.json propagate apply --yes # Pulumi: fork repos, deploy to Vercel, provision Redis + Neo4j propagate status # read deployment outputs

Re-install or refresh GitHub auth at any time with propagate auth github.

See CLI reference for full detail.

App manifest authoring

Each app repo must contain an app.manifest.yaml at its root declaring routes, env capabilities, and dependsOn relationships. This is authored via an agent task (see propagate repo AGENT_PREPARE_APPS.md), not a CLI command. propagate validate blocks apply until manifests exist.

DNS

All apps for a deployment share:

https://{appSlug}.{eventCode}.{hostName}
  • {appSlug} — catalog slug (docs, timelining, …)
  • {eventCode} — operator input during propagate create (e.g. argentina-alj)
  • {hostName} — from PROPAGATE_HOST_NAME (Prisma-controlled base domain)

Example: https://timelining.argentina-alj.prisma.events

Federation

Networking configuration (DID identity, parent-child relationships, policies) is planned as a separate federation.yaml manifest. It is not implemented in the current CLI version.

Last updated on