Implement phased modernization infrastructure for transitioning from multi-page legacy routing to SPA portal-shell architecture, plus post-delivery hardening fixes for policy loading, fallback consistency, and governance drift detection. Key changes: - Add route contract enrichment with scope/visibility/compatibility policies - Canonical 302 redirects from legacy direct-entry to /portal-shell/ routes - Asset readiness enforcement and runtime fallback retirement for in-scope routes - Shared feature-flag helpers (env > config > default) replacing duplicated _to_bool - Defensive copy for lru_cached policy payloads preventing mutation corruption - Unified retired-fallback response helper across app and blueprint routes - Frontend/backend route-contract cross-validation in governance gates - Shell CSS token fallback values for routes rendered outside shell scope - Local-safe .env.example defaults with production recommendation comments - Legacy contract fallback warning logging and single-hop redirect optimization Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
150 lines
3.0 KiB
JSON
150 lines
3.0 KiB
JSON
{
|
|
"pages": [
|
|
{
|
|
"route": "/",
|
|
"name": "首頁",
|
|
"status": "released"
|
|
},
|
|
{
|
|
"route": "/wip-overview",
|
|
"name": "WIP 即時概況",
|
|
"status": "released",
|
|
"drawer_id": "reports",
|
|
"order": 1
|
|
},
|
|
{
|
|
"route": "/hold-overview",
|
|
"name": "Hold 即時概況",
|
|
"status": "released",
|
|
"drawer_id": "reports",
|
|
"order": 2
|
|
},
|
|
{
|
|
"route": "/hold-history",
|
|
"name": "Hold 歷史績效",
|
|
"status": "released",
|
|
"drawer_id": "drawer-2",
|
|
"order": 3
|
|
},
|
|
{
|
|
"route": "/wip-detail",
|
|
"name": "WIP 明細",
|
|
"status": "released"
|
|
},
|
|
{
|
|
"route": "/hold-detail",
|
|
"name": "Hold 明細",
|
|
"status": "released"
|
|
},
|
|
{
|
|
"route": "/resource-history",
|
|
"name": "設備歷史績效",
|
|
"status": "released",
|
|
"drawer_id": "drawer-2",
|
|
"order": 5
|
|
},
|
|
{
|
|
"route": "/qc-gate",
|
|
"name": "QC-GATE 狀態",
|
|
"status": "released",
|
|
"drawer_id": "reports",
|
|
"order": 6
|
|
},
|
|
{
|
|
"route": "/tables",
|
|
"name": "表格總覽",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 1
|
|
},
|
|
{
|
|
"route": "/resource",
|
|
"name": "設備即時概況",
|
|
"status": "released",
|
|
"drawer_id": "reports",
|
|
"order": 4
|
|
},
|
|
{
|
|
"route": "/excel-query",
|
|
"name": "Excel 批次查詢",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 2
|
|
},
|
|
{
|
|
"route": "/job-query",
|
|
"name": "設備維修查詢",
|
|
"status": "released",
|
|
"drawer_id": "drawer",
|
|
"order": 3
|
|
},
|
|
{
|
|
"route": "/query-tool",
|
|
"name": "批次追蹤工具",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 4
|
|
},
|
|
{
|
|
"route": "/tmtt-defect",
|
|
"name": "TMTT印字腳型不良分析",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 5
|
|
},
|
|
{
|
|
"route": "/mid-section-defect",
|
|
"name": "中段製程不良追溯",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 6
|
|
},
|
|
{
|
|
"route": "/admin/pages",
|
|
"name": "頁面管理",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 1
|
|
},
|
|
{
|
|
"route": "/admin/performance",
|
|
"name": "效能監控",
|
|
"status": "dev",
|
|
"drawer_id": "dev-tools",
|
|
"order": 2
|
|
}
|
|
],
|
|
"api_public": true,
|
|
"db_scan": {
|
|
"schema": "DWH",
|
|
"updated_at": "2026-01-29 13:49:59",
|
|
"object_count": 19,
|
|
"source": "tools/query_table_schema.py"
|
|
},
|
|
"drawers": [
|
|
{
|
|
"id": "reports",
|
|
"name": "即時報表",
|
|
"order": 1,
|
|
"admin_only": false
|
|
},
|
|
{
|
|
"id": "dev-tools",
|
|
"name": "開發工具",
|
|
"order": 4,
|
|
"admin_only": true
|
|
},
|
|
{
|
|
"id": "drawer",
|
|
"name": "查詢工具",
|
|
"order": 3,
|
|
"admin_only": false
|
|
},
|
|
{
|
|
"id": "drawer-2",
|
|
"name": "歷史報表",
|
|
"order": 2,
|
|
"admin_only": false
|
|
}
|
|
]
|
|
} |