[Foundry P1] Per-campaign Foundry connection settings (URL, encrypted API key, system selector) #5

Open
opened 2026-06-23 00:42:31 +00:00 by rbrooks · 0 comments
Owner

Each campaign stores a Foundry server URL, an API key, and a system identifier. The system identifier selects the adapter (via the registry) that translates between Quest Board's model and the target system's Foundry schema.

Scope

  • Add per-campaign settings fields: Foundry server URL, API key, system selector.
  • Campaign settings UI to edit them.
  • The per-campaign URL is intentional - every group's network setup differs.

Security (treat the API key exactly like BOT_API_KEY)

  • Store it encrypted at rest - mirror the existing BOT_API_KEY storage pattern in app_settings rather than inventing a new encryption scheme.
  • Never log it.
  • Never include it in API responses.

Done when

  • A GM can set/clear URL, key, and system per campaign; key is encrypted at rest and never returned by the API.

Roadmap: Phase 1 step 2.

Each campaign stores a Foundry server URL, an API key, and a system identifier. The system identifier selects the adapter (via the registry) that translates between Quest Board's model and the target system's Foundry schema. ## Scope - Add per-campaign settings fields: Foundry server URL, API key, system selector. - Campaign settings UI to edit them. - The per-campaign URL is intentional - every group's network setup differs. ## Security (treat the API key exactly like `BOT_API_KEY`) - Store it **encrypted at rest** - **mirror the existing `BOT_API_KEY` storage pattern in `app_settings`** rather than inventing a new encryption scheme. - Never log it. - Never include it in API responses. ## Done when - A GM can set/clear URL, key, and system per campaign; key is encrypted at rest and never returned by the API. _Roadmap: Phase 1 step 2._
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rbrooks/Quest-Board#5
No description provided.