- Real server-side pagination (platform/api/src/pagination.js) on the audit log (was a flat LIMIT 200), student attempt history (was LIMIT 100), and assessment session history (was fully unbounded - the one genuine growth risk found). Frontend updated (AuditView, AssessmentsView, StudentsView). - Admission control: resource-policy.yaml's new (disabled-by-default) admission_control.max_concurrent_labs, checked before touching Docker at all, returns a clean 503 CAPACITY_EXCEEDED instead of failing mid-provision. Relayed as a clean student-facing message, never a raw 500. New GET /capacity endpoint feeds the instructor dashboard. - cohort_instructors.role_in_cohort (existed since Phase 2B, never read) is now enforced: teacher vs viewer, rbac.js's requireCohortWriteAccess/requireStudentCohortWriteAccess. - GET /api/version - app version, deployed Git SHA, latest migration as a schema-version stand-in. - Structured assessment authoring UI (AssessmentsView.jsx's PoolSpecEditor) replaces the raw-JSON pool_spec textarea, backed by a new GET /api/admin/scenario-catalog endpoint. Owner-only raw-JSON fallback remains for anything the structured editor doesn't cover. - NEEDS_ATTENTION_FAIL_THRESHOLD/STALE_DAYS moved to env-var configuration. Full regression suite (e2e-phase2a/2b/3a/3b, 67/67) re-run clean after these changes; frontend production build confirmed clean.
25 lines
1.1 KiB
Bash
25 lines
1.1 KiB
Bash
# Rendered by Ansible from infra/environments/{{ env }}/platform.env.template's shape —
|
|
# real values come from group_vars/{{ env }}.yml + the encrypted vault file. Do not hand-edit
|
|
# on the host; re-run the platform role instead.
|
|
|
|
# service names, not localhost — production runs these on a named Docker bridge network
|
|
# (rn-platform-internal), not network_mode: host like the dev compose file does.
|
|
PLATFORM_DB_URL=postgres://rootnode_platform:{{ vault_postgres_password }}@postgres:5432/rootnode_platform
|
|
PROVISIONER_URL=http://provisioner:4100
|
|
PROVISIONER_SHARED_SECRET={{ vault_provisioner_shared_secret }}
|
|
PLATFORM_API_PORT=4300
|
|
|
|
STUDENT_SESSION_TTL_HOURS=8
|
|
STUDENT_SESSION_IDLE_HOURS=2
|
|
INSTRUCTOR_SESSION_TTL_HOURS=12
|
|
INSTRUCTOR_SESSION_IDLE_HOURS=2
|
|
|
|
COOKIE_SECURE=1
|
|
TRUST_PROXY=1
|
|
|
|
# Phase 4.1 §17 — instructor "needs attention" thresholds. Commented out (code defaults apply:
|
|
# 3 failures, 7 stale days) — uncomment and override in group_vars/{{ env }}.yml only if a
|
|
# cohort's real usage shows the defaults are wrong for it.
|
|
# NEEDS_ATTENTION_FAIL_THRESHOLD=3
|
|
# NEEDS_ATTENTION_STALE_DAYS=7
|