Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ DISCORD_GUILD_ID=
SAL_OPERATOR_ROLE_IDS=
# Comma-separated Discord admin role IDs that override the operator allowlist.
SAL_ADMIN_ROLE_IDS=
# Optional narrower allowlist for the /report-result Enter stats button.
# Falls back to SAL_OPERATOR_ROLE_IDS when unset; admins always retain access.
SAL_MATCH_STATS_ROLE_IDS=
# Railway injects PORT; 3000 is the local default for /healthz.
PORT=3000

Expand All @@ -26,11 +29,9 @@ SUPABASE_URL=
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=

# sal-site standings recalculation (audit F-01). After a Discord-approved
# match result, the bot calls back into sal-site so standings recalculate the
# same way an admin save does. Set SAL_SITE_INTERNAL_TOKEN to the same value
# as sal-site's INTERNAL_SERVICE_TOKEN. If either is unset, the bot logs a
# warning and skips recalculation — an admin can still recalculate manually.
# sal-site internal boundary for host match-stat links, scouter ingestion, and
# standings recalculation. SAL_SITE_INTERNAL_TOKEN must match sal-site's
# INTERNAL_SERVICE_TOKEN.
SAL_SITE_URL=
SAL_SITE_INTERNAL_TOKEN=

Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,15 @@ This distinction matters for:
An authorized Discord operator selects a current-season match from a Supabase-driven dropdown → enters winner + score → system creates:

1. Public embed in `#match-results-[division]`
2. Dedicated proof thread for screenshot upload
2. Dedicated proof thread with an **Enter stats** button
3. Admin review card in `#admin-review`
4. Pending action in Supabase
5. Audit log entry

Screenshots are uploaded to the proof thread, not inline to the command. This supports 6–10 screenshots per match without degrading UX.
The host uploads screenshots once in the sal-site correction flow. After host
submission, SALBot mirrors the durable stored images into the proof thread and
posts an idempotent admin stats-review card. Official stats remain
site/database approval-only.

`/report-result` and `/log-scouter` authorize from the centrally configured
`SAL_OPERATOR_ROLE_IDS` and `SAL_ADMIN_ROLE_IDS`. OAuth/player linkage supplies
Expand Down
Loading