feat: Implement console session management with tenant and profile handling
- Add ConsoleSessionStore for managing console session state including tenants, profile, and token information. - Create OperatorContextService to manage operator context for orchestrator actions. - Implement OperatorMetadataInterceptor to enrich HTTP requests with operator context metadata. - Develop ConsoleProfileComponent to display user profile and session details, including tenant information and access tokens. - Add corresponding HTML and SCSS for ConsoleProfileComponent to enhance UI presentation. - Write unit tests for ConsoleProfileComponent to ensure correct rendering and functionality.
This commit is contained in:
		
							
								
								
									
										53
									
								
								ops/devops/check_cli_parity.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								ops/devops/check_cli_parity.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| #!/usr/bin/env python3 | ||||
| """Ensure CLI parity matrix contains no outstanding blockers before release.""" | ||||
| from __future__ import annotations | ||||
|  | ||||
| import pathlib | ||||
| import re | ||||
| import sys | ||||
|  | ||||
| REPO_ROOT = pathlib.Path(__file__).resolve().parents[2] | ||||
| PARITY_DOC = REPO_ROOT / "docs/cli-vs-ui-parity.md" | ||||
|  | ||||
| BLOCKERS = { | ||||
|     "🟥": "blocking gap", | ||||
|     "❌": "missing feature", | ||||
|     "🚫": "unsupported", | ||||
| } | ||||
| WARNINGS = { | ||||
|     "🟡": "partial support", | ||||
|     "⚠️": "warning", | ||||
| } | ||||
|  | ||||
|  | ||||
| def main() -> int: | ||||
|     if not PARITY_DOC.exists(): | ||||
|         print(f"❌ Parity matrix not found at {PARITY_DOC}", file=sys.stderr) | ||||
|         return 1 | ||||
|     text = PARITY_DOC.read_text(encoding="utf-8") | ||||
|     blockers: list[str] = [] | ||||
|     warnings: list[str] = [] | ||||
|     for line in text.splitlines(): | ||||
|         for symbol, label in BLOCKERS.items(): | ||||
|             if symbol in line: | ||||
|                 blockers.append(f"{label}: {line.strip()}") | ||||
|         for symbol, label in WARNINGS.items(): | ||||
|             if symbol in line: | ||||
|                 warnings.append(f"{label}: {line.strip()}") | ||||
|     if blockers: | ||||
|         print("❌ CLI parity gate failed — blocking items present:", file=sys.stderr) | ||||
|         for item in blockers: | ||||
|             print(f"  - {item}", file=sys.stderr) | ||||
|         return 1 | ||||
|     if warnings: | ||||
|         print("⚠️ CLI parity gate warnings detected:", file=sys.stderr) | ||||
|         for item in warnings: | ||||
|             print(f"  - {item}", file=sys.stderr) | ||||
|         print("Treat warnings as failures until parity matrix is fully green.", file=sys.stderr) | ||||
|         return 1 | ||||
|     print("✅ CLI parity matrix has no blocking or warning entries.") | ||||
|     return 0 | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     raise SystemExit(main()) | ||||
		Reference in New Issue
	
	Block a user