Skip to content

Platform Demo Management

Demo sessions and cleanup safety

This page tracks demo sessions, lifecycle state, expiration, and safe cleanup planning. It does not write or delete records yet.

Read-only cleanup inspection

Inspect session-owned records before any destructive cleanup tooling exists.

Cleanup inspection resolves demo_record_metadata links by demo_session_id and prints the dependency-safe delete order. It performs no deletes or updates.

Open proof session

Command

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\scripts\demo\inspect-gameplay-session-cleanup.ps1" -DemoSessionId "demo_session_internal_create_001"

Safety

  • Read-only inspection only
  • No cleanup/delete script yet
  • Delete by session ownership only
  • No slug/name matching cleanup

Cleanup DryRun status

DryRun validation passed; destructive cleanup is still disabled.

The delete script currently supports Mode=DryRun only. It performs ownership resolution, canonical guard checks, and delete-plan output without deleting or updating records.

Open proof session

DryRun command

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\scripts\demo\delete-gameplay-session-internal.ps1" -DemoSessionId "demo_session_internal_create_001" -Mode "DryRun"

Execution status

  • DryRun: available
  • Execute: disabled
  • Deletes: disabled
  • Updates: disabled

Demo safety suite readback

Fast local validation is available without mutating demo data.

Use the proof URL check, safety suite, or proof summary scripts before changing any public demo flow. Execute modes remain disabled.

Proof Summary

Available

Read-only

Cleanup DryRun

Available

Execute disabled

Reset DryRun

Available

Execute disabled

Week Finalization

DryRun

Execute disabled

Mutation Gates

Closed

No public writes

Fast validation command

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\scripts\demo\preview-demo-safety-suite.ps1"

Compact proof command

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\scripts\demo\preview-public-demo-proof-summary.ps1" -DemoSessionId "demo_session_internal_create_001" -CardPublicCode "DEMOATE0010101" -WeekNumber 1

Demo script map

Current validation and DryRun scripts.

Use these scripts to inspect the proof stack. Only the internal create script is write-capable, and it remains gated. Execute modes for cleanup, reset, and week finalization are disabled.

Script Purpose Mode Mutation status
preview-public-demo-proof-summary.ps1 Compact proof session, score preview, and safety summary. Read-only No writes
preview-demo-safety-suite.ps1 Runs URL, cleanup, reset, week-finalization, and proof checks. Read-only / DryRun No writes
preview-session-reset.ps1 Previews session reset impact and baseline restore plan. DryRun Execute disabled
preview-session-week-finalization.ps1 Previews Week 1 finalization with fantasy_player_weekly_scores. DryRun Execute disabled
delete-gameplay-session-internal.ps1 Inspects cleanup target and dependency-safe delete plan. DryRun only Deletes disabled

Cleanup Execute test passed

Disposable cleanup target was deleted and the active proof session still validates.

Cleanup Execute was validated only against demo_session_internal_cleanup_target_001. Public cleanup remains unavailable.

Open active proof

Disposable target

Deleted

Post-delete check

Passed

Active proof

Still valid

Public cleanup

Disabled

Read Model

Repository Read Status

seeded_fallback

Database read is unavailable or the demo schema has not been migrated yet, so this surface is using safe fallback data.

spawn psql.exe ENOENT

DB Verification

Infrastructure Readback

2 sessions

This verifies that demo infrastructure rows are readable from PostgreSQL before production domain services are wired.

Latest Session

demo_session_demo_platform_showcase_2026_001

Infrastructure Only

0

Metadata Records

44

Demo Youth Football Club

demo_active · public · hydrated_nfl 2025

Batch: demo_platform_showcase_2026_001

Demo Sessions

Manage demo lifecycle

2 sessions

Demo Youth Football Club

demo_platform_showcase_2026_001

demo active

Week 3

18

2026-05-13T17:30:00.000Z

Sample Booster Club

demo_group_sales_demo_2026_002

demo paused

Week 5

26

2026-05-15T17:30:00.000Z

Lifecycle Controls

Demo action plans

demo_active

Actions are state-aware. The API is still the source of enforcement, but this panel now mirrors which lifecycle actions are valid for the current demo session status.

Selected action

Pause Demo

allowed preview

From

demo_active

To

demo_paused

Confirmation

Not required

Controlled Lifecycle Boundary

Lifecycle Action API

expire/archive only

This endpoint can expire or archive demo infrastructure sessions and write lifecycle/audit events. It does not delete records and does not touch production domain tables.

Endpoint

/api/demo/sessions/lifecycle-action

Writes

3 demo tables

Delete

Disabled

Expire POST body
{
  "actionType": "expire",
  "confirmation": "EXPIRE_DEMO_INFRASTRUCTURE",
  "demoSessionId": "demo_session_demo_platform_showcase_2026_001",
  "demoBatchId": "demo_platform_showcase_2026_001"
}
Archive POST body
{
  "actionType": "archive",
  "confirmation": "ARCHIVE_DEMO_INFRASTRUCTURE",
  "demoSessionId": "demo_session_demo_platform_showcase_2026_001",
  "demoBatchId": "demo_platform_showcase_2026_001"
}

Safe Cleanup

Cleanup Preview

safe preview

Batch

demo_platform_showcase_2026_001

Action

expire

Records

18

fundraiser

6

share_link

6

card

6

This is a cleanup preview only. Real expiration, archiving, and deletion must pass through the demo repository and require demo-only record checks.

Database Tracker

Demo schema requirements

These fields and tables are required before demo creation writes to the production database.

demo_audit_events

Audits demo previews, create attempts, readiness checks, safety checks, scoring-period resolution, lifecycle actions, and cleanup previews.

demo_audit_event_idevent_typedemo_batch_iddemo_session_idactor_user_idriskentity_type

demo_lifecycle_events

Audits demo activation, pause, resume, reset, expire, archive, and delete actions.

demo_lifecycle_event_iddemo_session_iddemo_batch_idaction_typesource_statustarget_statusactor_user_id

demo_invites

Stores invite-only demo access tokens for prospects, investors, staff training, and sales walkthroughs.

demo_invite_iddemo_session_iddemo_batch_idinvite_token_hashemailaccess_modemax_uses

demo_data_sources

Tracks hydrated, synthetic, and replay data sources available to demo campaigns.

demo_data_source_idsourcedata_yearstatusrecommendedcapabilities_jsondescription

demo_record_metadata

Tracks every production-shaped demo record by batch/session for safe cleanup.

demo_record_iddemo_batch_iddemo_session_identity_typeentity_iddemo_purposedemo_access_mode

demo_sessions

Represents a public, invite-only, staff, investor, or sales demo run.

demo_session_iddemo_batch_idpreset_idstatusaccess_modecreated_by_user_idcreated_by_type

campaign_clocks

Allows real, manual, and simulated campaign time without changing scoring logic.

campaign_clock_idfundraiser_idcampaign_time_modedemo_data_sourcedemo_data_yearsimulation_profilesimulation_started_at

Production table demo fields

is_demodemo_batch_iddemo_session_iddemo_purposedemo_expires_atdemo_delete_after_at

Indexes to create

INDEX demo_audit_events_batch_idx (demo_batch_id)INDEX demo_audit_events_session_idx (demo_session_id)INDEX demo_audit_events_event_type_idx (event_type)INDEX demo_lifecycle_events_session_idx (demo_session_id)INDEX demo_lifecycle_events_batch_idx (demo_batch_id)INDEX demo_invites_session_idx (demo_session_id)UNIQUE demo_invites_token_hash_uidx (invite_token_hash)UNIQUE demo_data_sources_source_year_uidx (source, data_year)INDEX demo_record_metadata_demo_batch_id_idx (demo_batch_id)INDEX demo_record_metadata_entity_idx (entity_type, entity_id)INDEX demo_sessions_status_expires_idx (status, expires_at)INDEX campaign_clocks_fundraiser_id_idx (fundraiser_id)