Greenroom
Pre-flight staging: where a change waits and is checked before it goes live.
glueRunning the shop90 operationsid greenroom
How it sits
Glue chains parts together and keeps the result running. The counts and the links below are from the platform's spec and the other services' own descriptions.
| Operations | 90 GET 43 · POST 37 · PUT 8 · DELETE 2 |
| Resources | 17 |
| Leaned on by | Calendar |
| Leans on | none named |
| In recipes | none yet |
What it can do
90 operations in 17 resources, as the spec declares them. Each row is one call; paths are relative to the part.
messaging
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/messaging/no-go-topics | List current No-Go Topics |
| POST | /api/v1/messaging/no-go-topics | Create a No-Go Topic |
| PUT | /api/v1/messaging/no-go-topics/{root_id} | Update a No-Go Topic (creates a new version) |
| GET | /api/v1/messaging/opposition-contrasts | List current Opposition Contrasts |
| POST | /api/v1/messaging/opposition-contrasts | Create an Opposition Contrast |
| PUT | /api/v1/messaging/opposition-contrasts/{root_id} | Update an Opposition Contrast (creates a new version) |
| GET | /api/v1/messaging/pillars | List current Pillars |
| POST | /api/v1/messaging/pillars | Create a Pillar (v1) |
| GET | /api/v1/messaging/pillars/{root_id} | Get the current Pillar version |
| PUT | /api/v1/messaging/pillars/{root_id} | Update a Pillar (creates a new version) |
| GET | /api/v1/messaging/rapid-response-lines | List current Rapid Response Lines |
| POST | /api/v1/messaging/rapid-response-lines | Create a Rapid Response Line |
| PUT | /api/v1/messaging/rapid-response-lines/{root_id} | Update a Rapid Response Line (creates a new version) |
| GET | /api/v1/messaging/talking-points | List current Talking Points |
| POST | /api/v1/messaging/talking-points | Create a Talking Point |
| PUT | /api/v1/messaging/talking-points/{root_id} | Update a Talking Point (creates a new version) |
16 operations
shows
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/shows | List Shows |
| POST | /api/v1/shows | Ingest a Show |
| POST | /api/v1/shows/bookers | Ingest a Booker |
| GET | /api/v1/shows/bookers/{booker_id} | Get a Booker |
| POST | /api/v1/shows/episodes | Ingest an Episode |
| POST | /api/v1/shows/hosts | Ingest a Host |
| GET | /api/v1/shows/hosts/{host_id} | Get a Host |
| POST | /api/v1/shows/producers | Ingest a Producer |
| GET | /api/v1/shows/producers/{producer_id} | Get a Producer |
| GET | /api/v1/shows/{show_id} | Get a Show |
| PUT | /api/v1/shows/{show_id} | Update a Show |
| DELETE | /api/v1/shows/{show_id}/conflict-flag | Clear all active conflict flags on a Show |
| POST | /api/v1/shows/{show_id}/conflict-flag | Flag a Show as a conflict of interest |
| GET | /api/v1/shows/{show_id}/episodes | List Episodes for a Show |
| GET | /api/v1/shows/{show_id}/hosts | List Hosts for a Show |
15 operations
touchpoints
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/touchpoints/digests | List TouchpointDigests for a user |
| POST | /api/v1/touchpoints/digests | Compose a TouchpointDigest |
| GET | /api/v1/touchpoints/digests/{digest_id} | Get a TouchpointDigest |
| GET | /api/v1/touchpoints/digests/{digest_id}/touchpoints | List Touchpoints for a digest |
| GET | /api/v1/touchpoints/signals | List TouchpointSignals |
| POST | /api/v1/touchpoints/signals | Record a TouchpointSignal |
| GET | /api/v1/touchpoints/{touchpoint_id} | Get a Touchpoint |
| POST | /api/v1/touchpoints/{touchpoint_id}/outcome | Record a Touchpoint outcome |
8 operations
pitches
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/pitches | List Pitches |
| POST | /api/v1/pitches | Create a Pitch and its initial Hit |
| POST | /api/v1/pitches/outbound/{outbound_id}/response | Mark an outbound as having received a response |
| GET | /api/v1/pitches/{pitch_id} | Get a Pitch |
| POST | /api/v1/pitches/{pitch_id}/close | Close a Pitch |
| GET | /api/v1/pitches/{pitch_id}/outbound | List outbound records for a Pitch |
| POST | /api/v1/pitches/{pitch_id}/send | Send a pitch outbound |
7 operations
tenants
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/tenants | List Tenants |
| POST | /api/v1/tenants | Create a Tenant |
| GET | /api/v1/tenants/{tenant_id} | Get a Tenant by id |
| POST | /api/v1/tenants/{tenant_id}/lock-outbound | Lock outbound for a Tenant |
| POST | /api/v1/tenants/{tenant_id}/promote-to-live | Promote a Tenant from DEMO to LIVE |
| POST | /api/v1/tenants/{tenant_id}/revert-to-demo | Revert a Tenant to DEMO mode |
| POST | /api/v1/tenants/{tenant_id}/unlock-outbound | Unlock outbound for a Tenant |
7 operations
approvals
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/approvals | List Approvals |
| POST | /api/v1/approvals | Request a dual approval |
| GET | /api/v1/approvals/by-hit/{hit_id} | List Approvals for a Hit |
| GET | /api/v1/approvals/{approval_id} | Get an Approval |
| POST | /api/v1/approvals/{approval_id}/decisions | Record an approver's decision |
5 operations
briefings
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/briefings/by-hit/{hit_id} | List BriefingPackets for a Hit |
| POST | /api/v1/briefings/generate-for-hit/{hit_id} | Generate a BriefingPacket for a Hit |
| GET | /api/v1/briefings/{packet_id} | Get a BriefingPacket |
| POST | /api/v1/briefings/{packet_id}/emailed | Mark emailed |
| POST | /api/v1/briefings/{packet_id}/pdf-rendered | Mark PDF rendered |
5 operations
compliance
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/compliance/disclosure-templates | List DisclosureTemplates in the request tenant |
| POST | /api/v1/compliance/disclosure-templates | Create a DisclosureTemplate |
| GET | /api/v1/compliance/disclosure-templates/{template_id} | Get a DisclosureTemplate by id |
| PUT | /api/v1/compliance/disclosure-templates/{template_id} | Replace a DisclosureTemplate (clears counsel approval on body change) |
| POST | /api/v1/compliance/disclosure-templates/{template_id}/counsel-approve | Stamp counsel approval onto a DisclosureTemplate |
5 operations
hits
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/hits | List Hits |
| POST | /api/v1/hits/referral | Record a referral |
| POST | /api/v1/hits/walk-in | Record a walk-in booking |
| GET | /api/v1/hits/{hit_id} | Get a Hit |
| POST | /api/v1/hits/{hit_id}/transition | Advance a Hit to a new state |
5 operations
users
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/users | List Users |
| POST | /api/v1/users | Create a User |
| DELETE | /api/v1/users/{user_id} | Deactivate a User |
| GET | /api/v1/users/{user_id} | Get a User by id |
| PUT | /api/v1/users/{user_id} | Update a User |
5 operations
messaging-snapshots
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/messaging-snapshots | List MessagingSnapshots |
| POST | /api/v1/messaging-snapshots | Create a MessagingSnapshot |
| GET | /api/v1/messaging-snapshots/{snapshot_id} | Get a MessagingSnapshot |
| GET | /api/v1/messaging-snapshots/{snapshot_id}/entries | List entries pinned by a snapshot |
4 operations
cron
| Method | Path | Does |
|---|---|---|
| POST | /api/v1/cron/briefings/t-minus-2h/{hit_id} | Cron T-2hr trigger: generate a briefing packet for a hit |
| POST | /api/v1/cron/touchpoints/weekly-digest | Cron weekly trigger: compose a touchpoint digest for an operator |
2 operations
health
| Method | Path | Does |
|---|---|---|
| GET | /health | Basic health check |
| GET | /health/detailed | Detailed health check |
2 operations
hello
| Method | Path | Does |
|---|---|---|
| GET | /api/v1/hello | Hello world |
1 operation
m
| Method | Path | Does |
|---|---|---|
| GET | /m/decision | Mobile tap-handler — record an approval decision from a signed link |
1 operation
prime
| Method | Path | Does |
|---|---|---|
| GET | /prime | Prime application caches |
1 operation
status
| Method | Path | Does |
|---|---|---|
| GET | /status | Service status overview |
1 operation
All the partsRunning the shopThe platform's own id for this service is cbgreenroom.
forge-catalog.json, generated Oct 30, 2026