Skip to content

Commit db0f1dc

Browse files
Phase 3D: Complete dashboard verification, CI operationalization, and testnet validation
## Summary Completed end-to-end verification of local Grafana testnet stack with full dashboard data availability, expanded validation automation, and documentation governance. ## Changes ### Dashboard Verification - Verified all 3 dashboards (Operations, Tokenomics, LLM) show live data for 100% of queried targets - Fixed backend metrics scraping by enabling local HTTP mode on compose-managed backend - Resolved Prometheus DNS resolution for backend service alias - Seeded TPM attestation latency metric through exporter event endpoint - Updated operations_overview.json metric contract with warmup requirements ### Documentation & Governance - Added docs/DOCUMENTATION_MAINTENANCE.md for governance policy - Updated all README files and index docs with latest claim verification - Created tests/docs/TEST_ENV_SETUP.md for local environment setup - Updated CI_STATUS_AND_CLAIMS.md with validation workflow details - Documented attestation warmup requirement for dashboard panels 64 and 68 ### CI/CD Operationalization - Added .github/workflows/full-validation-pr-gate.yml for pre-merge checks - Added .github/workflows/full-validation-scheduled-deep.yml for 24h deep validation - Added .github/workflows/docs-quality.yml for docs link and markdown validation - Created tests/scripts/ci/check_validation_trends.py for SLO trend analysis - Created tests/scripts/ci/write_validation_diff_summary.py for artifact summaries ### Validation Suite Expansion - Added run_full_validation_suite.py with fast/deep profile support - Added test_backend_live_e2e.py for live backend E2E validation - Added test_browser_runtime_e2e.py with Playwright E2E browser runtime tests - Added test_performance_regression_thresholds.py for latency SLO checks - Added test_security_controls.py for auth/rate-limit/HTTPS enforcement - Added test_security_fuzz_controls.py for fuzz/Byzantine validation - Added test_soak_chaos_guard.py for soak and chaos scenario detection ### Backend & Security - Updated sovereignmap_production_backend_v2.py with local verification overrides - Updated secure_communication.py with enhanced trust verification paths - Updated packages/training/api.py with improved error handling ### Frontend Performance - Applied EMA smoothing to BrowserFLDemo.jsx polling loops - Added render throttle (500ms cadence) for chart update efficiency - Updated App.jsx with smoothing configuration for jitter reduction ### Local Testnet Infrastructure - Updated docker-compose.full.yml with environment flags for local verification - SECURITY_ENFORCE_HTTPS toggle - SECURITY_ALLOW_LOCAL_HTTP toggle - ALLOW_INSECURE_DEV_ADMIN_TOKEN toggle - Verified warm-up behavior: attestation events, FL training, policy updates, consensus - Confirmed 0 active alerts after soak period with healthy latency metrics ### Dashboard Readability - Updated grafana provisioning dashboards with human-friendly titles/descriptions - Added tags for audience targeting (dev, ops, user) - Verified all Prometheus target queries return live data ## Metrics & Validation Live stack health (post-soak): - Backend HTTP p95: ~62 ms (SLO: 100 ms) - FL round p95: ~61 ms (SLO: 1000 ms) - FL round rate: ~1.6 rounds/s (steady) - Active alerts: 0 - TPM verification failures: 0 - Dashboard target coverage: 68/68 (ops), 32/32 (tokenomics), 19/19 (llm) - Full validation suite: 9/9 checks passed ## Testing Done - Live dashboard E2E verification against running Prometheus/Grafana - Backend security controls validation - Frontend unit tests - Marketplace contract validation - SDK package tests - Dependency security audit - 15-minute soak with alert monitoring - Clean rescan after exporter reset (confirms alert accuracy)
1 parent 7eb2349 commit db0f1dc

43 files changed

Lines changed: 2588 additions & 222 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/docs-quality.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Docs Quality
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "README.md"
7+
- "docs/README.md"
8+
- "Documentation/README.md"
9+
- "docs/DOCUMENTATION_MAINTENANCE.md"
10+
- "scripts/check_markdown_links_subset.py"
11+
- ".github/workflows/docs-quality.yml"
12+
push:
13+
branches: [main]
14+
paths:
15+
- "README.md"
16+
- "docs/README.md"
17+
- "Documentation/README.md"
18+
- "docs/DOCUMENTATION_MAINTENANCE.md"
19+
- "scripts/check_markdown_links_subset.py"
20+
- ".github/workflows/docs-quality.yml"
21+
workflow_dispatch:
22+
23+
permissions:
24+
contents: read
25+
26+
jobs:
27+
markdown-lint-and-links:
28+
runs-on: ubuntu-latest
29+
30+
steps:
31+
- name: Checkout
32+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
33+
34+
- name: Setup Node
35+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
36+
with:
37+
node-version: "20"
38+
39+
- name: Setup Python
40+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
41+
with:
42+
python-version: "3.12"
43+
44+
- name: Markdown lint (targeted files)
45+
run: |
46+
cat > /tmp/markdownlint-docs-quality.json <<'EOF'
47+
{
48+
"default": true,
49+
"MD013": false
50+
}
51+
EOF
52+
npx --yes markdownlint-cli2 \
53+
--config /tmp/markdownlint-docs-quality.json \
54+
README.md \
55+
docs/README.md \
56+
Documentation/README.md \
57+
docs/DOCUMENTATION_MAINTENANCE.md
58+
59+
- name: Local markdown link check (targeted files)
60+
run: |
61+
python scripts/check_markdown_links_subset.py \
62+
README.md \
63+
docs/README.md \
64+
Documentation/README.md \
65+
docs/DOCUMENTATION_MAINTENANCE.md
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Full Validation PR Gate
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
validation-gate:
13+
name: Fast Validation Gate
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
19+
20+
- name: Set up Python
21+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
22+
with:
23+
python-version: '3.11'
24+
25+
- name: Set up Node.js
26+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
27+
with:
28+
node-version: '20'
29+
cache: 'npm'
30+
31+
- name: Prepare test environment
32+
run: npm run test:setup
33+
34+
- name: Run fast validation profile
35+
run: npm run test:full:fast
36+
37+
- name: Enforce trend SLOs
38+
env:
39+
VALIDATION_MAX_DURATION_REGRESSION_PCT: '40'
40+
VALIDATION_ENFORCE_CATEGORY_ZERO_FAIL: '1'
41+
run: npm run test:trends
42+
43+
- name: Write diff summary
44+
run: npm run test:summary:diff
45+
46+
- name: Upload full validation artifacts
47+
if: always()
48+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
49+
with:
50+
name: full-validation-pr-${{ github.run_id }}
51+
path: test-results/full-validation
52+
if-no-files-found: warn
53+
retention-days: 14
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Full Validation Scheduled Deep
2+
3+
on:
4+
schedule:
5+
- cron: '0 2 * * *'
6+
- cron: '0 3 * * 0'
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
deep-validation:
14+
name: Deep Validation and Soak
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
20+
21+
- name: Set up Python
22+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
23+
with:
24+
python-version: '3.11'
25+
26+
- name: Set up Node.js
27+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
28+
with:
29+
node-version: '20'
30+
cache: 'npm'
31+
32+
- name: Decide soak mode
33+
run: |
34+
if [[ "${{ github.event_name }}" == "schedule" && "${{ github.event.schedule }}" == "0 3 * * 0" ]]; then
35+
echo "SOAK_CHAOS_ENABLED=1" >> "$GITHUB_ENV"
36+
else
37+
echo "SOAK_CHAOS_ENABLED=0" >> "$GITHUB_ENV"
38+
fi
39+
40+
- name: Prepare test environment
41+
run: npm run test:setup
42+
43+
- name: Run deep validation profile
44+
env:
45+
PLAYWRIGHT_E2E_ENABLED: '1'
46+
SOAK_CHAOS_STRICT: '0'
47+
run: npm run test:full:deep
48+
49+
- name: Enforce trend SLOs
50+
env:
51+
VALIDATION_MAX_DURATION_REGRESSION_PCT: '60'
52+
VALIDATION_ENFORCE_CATEGORY_ZERO_FAIL: '1'
53+
run: npm run test:trends
54+
55+
- name: Write diff summary
56+
run: npm run test:summary:diff
57+
58+
- name: Upload deep validation artifacts
59+
if: always()
60+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
61+
with:
62+
name: full-validation-deep-${{ github.run_id }}
63+
path: test-results/full-validation
64+
if-no-files-found: warn
65+
retention-days: 30

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Use the repository PR template at `.github/pull_request_template.md` when openin
2525
- [ ] CI workflows pass on your branch
2626
- [ ] Security checks pass (including CodeQL)
2727
- [ ] Documentation is updated for any behavior/config changes
28+
- [ ] Documentation sync completed when workflows, tests, or security defaults changed
2829
- [ ] No secrets or credentials are committed
2930

3031
## Documentation Sync Requirements
@@ -59,8 +60,8 @@ The repository includes a Git-based reward scoring system to rank contributions.
5960

6061
- Run `make contributors-rankings`
6162
- Outputs:
62-
- `test-results/contributor-rankings/CONTRIBUTOR_RANKINGS.md`
63-
- `test-results/contributor-rankings/contributor_rankings.json`
63+
- `test-results/contributor-rankings/CONTRIBUTOR_RANKINGS.md`
64+
- `test-results/contributor-rankings/contributor_rankings.json`
6465

6566
Current points formula:
6667

Documentation/MASTER_DOCUMENTATION_INDEX.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,18 @@
22

33
This index catalogs all documentation-like files in the repository and groups them by category and location.
44

5+
Current-branch canonical references:
6+
7+
- [Root README](../README.md)
8+
- [docs index](../docs/README.md)
9+
- [Documentation hub](README.md)
10+
- [Documentation maintenance runbook](../docs/DOCUMENTATION_MAINTENANCE.md)
11+
- [Test environment and validation profiles](../tests/docs/TEST_ENV_SETUP.md)
12+
- [Full Validation PR gate workflow](../.github/workflows/full-validation-pr-gate.yml)
13+
- [Full Validation scheduled deep workflow](../.github/workflows/full-validation-scheduled-deep.yml)
14+
515
- Total indexed files: 269
6-
- Indexed on: 2026-03-13 23:39 UTC
16+
- Indexed on: 2026-04-04 00:00 UTC
717

818
## Category Index
919

Documentation/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,17 @@ This folder centralizes repository documentation discovery.
2020
- [Project/TEST_FILE_RELOCATION_ADDENDUM_2026-03-15.md](Project/TEST_FILE_RELOCATION_ADDENDUM_2026-03-15.md)
2121
- [Performance/TPM_ATTESTATION_BOTTLENECK_ANALYSIS_2026-03-24.md](Performance/TPM_ATTESTATION_BOTTLENECK_ANALYSIS_2026-03-24.md)
2222
- [Security/API_AUTH_TOKEN_ROTATION_RUNBOOK.md](Security/API_AUTH_TOKEN_ROTATION_RUNBOOK.md)
23+
- [Security/CI_STATUS_AND_CLAIMS.md](Security/CI_STATUS_AND_CLAIMS.md)
2324
- [Deployment/PARTICIPANT_JOIN_LOCAL.md](Deployment/PARTICIPANT_JOIN_LOCAL.md)
2425
- [Deployment/WINDOWS_CLIENT_EXE.md](Deployment/WINDOWS_CLIENT_EXE.md)
2526

27+
## Current Validation and Documentation Controls
28+
29+
- [../docs/DOCUMENTATION_MAINTENANCE.md](../docs/DOCUMENTATION_MAINTENANCE.md)
30+
- [../tests/docs/TEST_ENV_SETUP.md](../tests/docs/TEST_ENV_SETUP.md)
31+
- [../.github/workflows/full-validation-pr-gate.yml](../.github/workflows/full-validation-pr-gate.yml)
32+
- [../.github/workflows/full-validation-scheduled-deep.yml](../.github/workflows/full-validation-scheduled-deep.yml)
33+
2634
## Topic Folders
2735

2836
- [Security](Security)

Documentation/Security/CI_STATUS_AND_CLAIMS.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ This document defines what can be claimed from automation results and what still
77
Latest local command results on this branch:
88

99
- `make lint` surfaced `golangci-lint` typecheck failures caused by missing modules:
10-
- `github.com/tetratelabs/wazero`
11-
- `github.com/tetratelabs/wazero/api`
10+
- `github.com/tetratelabs/wazero`
11+
- `github.com/tetratelabs/wazero/api`
1212
- `go test ./...` failed due to:
13-
- Missing modules (`wazero`, `wazero/api`, `github.com/stretchr/testify/assert`)
14-
- Test/API drift in `internal/batch`, `internal/island`, `internal/p2p`, and `internal/tpm`
13+
- Missing modules (`wazero`, `wazero/api`, `github.com/stretchr/testify/assert`)
14+
- Test/API drift in `internal/batch`, `internal/island`, `internal/p2p`, and `internal/tpm`
1515

1616
Claim constraint from this snapshot:
1717

@@ -21,6 +21,7 @@ Claim constraint from this snapshot:
2121
## Workflow Badges (main branch)
2222

2323
[![Build and Test](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/build.yml)
24+
[![Full Validation PR Gate](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/full-validation-pr-gate.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/full-validation-pr-gate.yml)
2425
[![CodeQL Security Analysis](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/codeql-analysis.yml)
2526
[![Lint Code Base](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/lint.yml)
2627
[![SGP-001 Audit Sync](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/audit-check.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/audit-check.yml)
@@ -38,6 +39,7 @@ Claim constraint from this snapshot:
3839

3940
- Code builds and workflow jobs complete for the tracked branch/commit.
4041
- Unit/integration suites wired into CI pass.
42+
- Full validation gate checks capability, security, and performance profiles for pull requests.
4143
- Static analysis/lint/security gates configured in workflows pass.
4244
- TPM emulation tests pass in CI via `swtpm`/`tpm2-tools`.
4345
- NPU fallback logic tests pass (selection/fallback behavior, not accelerator throughput).

Documentation/TESTING_INDEX.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# TESTING Documentation Index
22

3+
## Current Validation Entry Points
4+
5+
- [Root test setup and profiles](../tests/docs/TEST_ENV_SETUP.md)
6+
- [Validation runner](../tests/scripts/python/run_full_validation_suite.py)
7+
- [Trend SLO checker](../tests/scripts/ci/check_validation_trends.py)
8+
- [Validation diff summary writer](../tests/scripts/ci/write_validation_diff_summary.py)
9+
- [PR gate workflow](../.github/workflows/full-validation-pr-gate.yml)
10+
- [Scheduled deep workflow](../.github/workflows/full-validation-scheduled-deep.yml)
11+
12+
Note: this file is a broad catalog and includes historical testing documents. Use the links above for current branch validation behavior.
13+
314
## Files
415

516
- [Documentation/Deployment/GENESIS_LAUNCH_CHECKLIST.md](/Documentation/Deployment/GENESIS_LAUNCH_CHECKLIST.md)

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Production-grade federated learning platform that combines Byzantine-resilient a
3030
[![FedAvg Benchmark Compare](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/fedavg-benchmark-compare.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/fedavg-benchmark-compare.yml)
3131
[![API Spec Validation](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/api-spec-validation.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/api-spec-validation.yml)
3232
[![API Docs Pages](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/api-docs-pages.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/api-docs-pages.yml)
33+
[![Full Validation PR Gate](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/full-validation-pr-gate.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/full-validation-pr-gate.yml)
3334
[![CodeQL Security Analysis](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/codeql-analysis.yml)
3435
[![Security Supply Chain](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/security-supply-chain.yml/badge.svg?branch=main)](https://github.com/rwilliamspbg-ops/Sovereign_Map_Federated_Learning/actions/workflows/security-supply-chain.yml)
3536
[![License](https://img.shields.io/github/license/rwilliamspbg-ops/Sovereign_Map_Federated_Learning?style=flat-square)](LICENSE)
@@ -42,6 +43,8 @@ Production-grade federated learning platform that combines Byzantine-resilient a
4243

4344
Documentation entrypoint: [docs/README.md](docs/README.md)
4445

46+
> Canonical docs navigation: [docs/README.md](docs/README.md) for active operator guides and [Documentation/MASTER_DOCUMENTATION_INDEX.md](Documentation/MASTER_DOCUMENTATION_INDEX.md) for full repository documentation indexing.
47+
4548
## New Contributor Fast Path
4649

4750
If you just cloned the repo and want to run tests quickly, use this sequence.
@@ -77,6 +80,41 @@ Where to get contribution guidance:
7780
- Runtime validation expectations: [README.md#contributor-first-steps](README.md#contributor-first-steps)
7881
- Operations dashboard metric contract: [docs/OPERATIONS_DASHBOARD_METRIC_CONTRACT.md](docs/OPERATIONS_DASHBOARD_METRIC_CONTRACT.md)
7982

83+
## Validation and CI Upgrades April 2026
84+
85+
The consolidated validation path now supports profile-based execution, trend SLO enforcement, artifact diff summaries, browser runtime cadence checks, and scheduled deep validation runs.
86+
87+
What was added:
88+
89+
- Required-style PR gate workflow: [.github/workflows/full-validation-pr-gate.yml](.github/workflows/full-validation-pr-gate.yml)
90+
- Scheduled deep workflow: [.github/workflows/full-validation-scheduled-deep.yml](.github/workflows/full-validation-scheduled-deep.yml)
91+
- Fast and deep suite profiles: [tests/scripts/python/run_full_validation_suite.py](tests/scripts/python/run_full_validation_suite.py)
92+
- Trend SLO checker: [tests/scripts/ci/check_validation_trends.py](tests/scripts/ci/check_validation_trends.py)
93+
- CI diff summary writer: [tests/scripts/ci/write_validation_diff_summary.py](tests/scripts/ci/write_validation_diff_summary.py)
94+
- Browser runtime E2E cadence check: [tests/scripts/python/test_browser_runtime_e2e.py](tests/scripts/python/test_browser_runtime_e2e.py)
95+
- Playwright runtime artifacts: [tests/e2e/runtime-cadence.spec.js](tests/e2e/runtime-cadence.spec.js), [tests/e2e/playwright.config.js](tests/e2e/playwright.config.js)
96+
97+
Canonical commands:
98+
99+
```bash
100+
npm run test:setup
101+
npm run test:full:fast
102+
npm run test:full:deep
103+
npm run test:trends
104+
npm run test:summary:diff
105+
```
106+
107+
Validation artifacts:
108+
109+
- `test-results/full-validation/full_validation_<timestamp>.json`
110+
- `test-results/full-validation/full_validation_<timestamp>.md`
111+
- `test-results/full-validation/history.jsonl`
112+
113+
Documentation governance:
114+
115+
- Documentation maintenance runbook: [docs/DOCUMENTATION_MAINTENANCE.md](docs/DOCUMENTATION_MAINTENANCE.md)
116+
- Test setup details and profile usage: [tests/docs/TEST_ENV_SETUP.md](tests/docs/TEST_ENV_SETUP.md)
117+
80118
## Mobile Shield Update March 2026
81119

82120
The mobile hardening and store packaging track is now implemented in-repo.

docker-compose.full.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ services:
6464
- PUBLIC_AGGREGATOR_PORT=${PUBLIC_AGGREGATOR_PORT:-8080}
6565
- OPS_PRIVACY_EPSILON_TARGET=${OPS_PRIVACY_EPSILON_TARGET:-1.0}
6666
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
67+
- SECURITY_ENFORCE_HTTPS=${SECURITY_ENFORCE_HTTPS:-true}
68+
- SECURITY_ALLOW_LOCAL_HTTP=${SECURITY_ALLOW_LOCAL_HTTP:-true}
69+
- ALLOW_INSECURE_DEV_ADMIN_TOKEN=${ALLOW_INSECURE_DEV_ADMIN_TOKEN:-false}
6770
ports:
6871
- "${BACKEND_API_HOST_PORT:-8000}:8000" # Flask metrics API
6972
- "${BACKEND_GRPC_HOST_PORT:-8080}:8080" # Flower aggregator

0 commit comments

Comments
 (0)