From ecd66e33df87b2559e59e1b750a0a89b8e799559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Mon, 12 Jan 2026 05:03:09 +0000 Subject: [PATCH] chore: update docs and layout --- .gitignore | 2 +- crates/control-center-ui/Trunk.toml | 2 +- crates/control-center-ui/assets/manifest.json | 2 +- crates/control-center-ui/assets/sw.js | 2 +- .../dist/index-956be635a01ed8a8.css | 2 +- crates/control-center-ui/dist/index.html | 4 +- crates/control-center-ui/index.html | 2 +- crates/control-center-ui/manifest.json | 2 +- crates/control-center-ui/package.json | 2 +- crates/control-center-ui/src/App.css | 2 +- crates/control-center-ui/src/App.tsx | 2 +- .../control-center-ui/src/api/orchestrator.rs | 2 +- .../src/api/orchestrator_client.rs | 2 +- .../src/api/orchestrator_types.rs | 2 +- crates/control-center-ui/src/auth/crypto.rs | 2 +- .../src/auth/http_interceptor.rs | 2 +- crates/control-center-ui/src/auth/storage.rs | 2 +- .../src/auth/token_manager.rs | 2 +- crates/control-center-ui/src/auth/webauthn.rs | 2 +- .../src/components/audit/AuditLogViewer.tsx | 2 +- .../audit/ComplianceReportGenerator.tsx | 2 +- .../src/components/audit/ExportModal.tsx | 2 +- .../src/components/audit/LogDetailModal.tsx | 2 +- .../components/audit/RealTimeIndicator.tsx | 2 +- .../src/components/audit/SearchFilters.tsx | 2 +- .../components/audit/VirtualizedLogTable.tsx | 2 +- .../src/components/notifications.rs | 2 +- .../src/components/policies/mod.rs | 2 +- .../src/components/policies/policy_editor.rs | 2 +- crates/control-center-ui/src/hooks/mod.rs | 1 - .../src/hooks/useWebSocket.ts | 2 +- crates/control-center-ui/src/index.css | 2 +- crates/control-center-ui/src/lib.rs | 2 +- crates/control-center-ui/src/main.tsx | 2 +- .../src/pages/infrastructure.rs | 2 +- crates/control-center-ui/src/pages/users.rs | 2 +- crates/control-center-ui/src/services/api.ts | 2 +- .../src/services/dashboard_config.rs | 2 +- .../control-center-ui/src/services/export.rs | 2 +- crates/control-center-ui/src/types/audit.ts | 2 +- crates/control-center-ui/src/types/policy.rs | 2 +- crates/control-center-ui/sw.js | 2 +- crates/control-center-ui/tailwind.config.js | 2 +- crates/control-center-ui/test.html | 2 +- crates/control-center-ui/tsconfig.json | 2 +- crates/control-center-ui/vite.config.ts | 2 +- crates/control-center/Cargo.toml | 2 +- .../policies/data-classification.cedar | 2 +- .../policies/geo-restriction.cedar | 2 +- .../policies/maintenance-window.cedar | 2 +- .../policies/production-approval.cedar | 2 +- .../control-center/policies/require-mfa.cedar | 2 +- .../policies/time-based-access.cedar | 2 +- .../tests/data/mock_resources.json | 2 +- .../control-center/tests/data/mock_users.json | 2 +- crates/mcp-server/Cargo.toml | 2 +- crates/mcp-server/src/main.rs | 66 +++++++++---------- .../src/tools/provisioning_tools.rs.bak2 | 2 +- crates/orchestrator/.cargo/config.toml | 2 +- crates/orchestrator/Cargo.toml | 2 +- .../237315de-8a7f-430a-8804-65d050f3bfb0.json | 2 +- .../7ff31593-cb5f-4a52-88ff-3a3d9bfbf931.json | 2 +- .../b14f9a93-318b-4d56-aa73-a5c1e38a2a9b.json | 2 +- .../c2050e55-46d9-47bc-abcd-8b137a6ee459.json | 2 +- .../999c70f4-3fa4-4879-bbd2-e85f5d0027f3.json | 2 +- ...s_14043518-e459-4316-aadd-6ee6d221e644.txt | 2 +- ...s_1e9b4914-f290-4bec-80f2-35128250f9fd.txt | 2 +- ...s_21c8a4af-2562-4304-b5ec-90fb1b5fd0ab.txt | 2 +- ...s_317e31fa-b549-49c9-a212-1f13445d913f.txt | 2 +- ...s_5da5d888-527e-4aac-ab53-93e9a30014cc.txt | 2 +- ...s_7c16746f-24b0-4bcc-8a49-b5dc6bc1f0c7.txt | 2 +- ...s_cb3ced5a-ab49-4754-ba90-c815ab0948ba.txt | 2 +- .../orchestrator/scripts/migrate-storage.nu | 2 +- .../scripts/start-orchestrator.nu | 2 +- crates/orchestrator/src/monitoring.rs | 2 +- crates/orchestrator/src/storage/schema.surql | 2 +- ...s_c5016dba-c18e-4a56-af13-16e672ca4f0c.txt | 2 +- ...s_c7e05a80-213c-4f6c-a6a2-31f0bbe4d1aa.txt | 2 +- 78 files changed, 110 insertions(+), 111 deletions(-) diff --git a/.gitignore b/.gitignore index eef501c..2fa5c7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.p +.p .claude .vscode .shellcheckrc diff --git a/crates/control-center-ui/Trunk.toml b/crates/control-center-ui/Trunk.toml index f9801ce..0ab8d68 100644 --- a/crates/control-center-ui/Trunk.toml +++ b/crates/control-center-ui/Trunk.toml @@ -43,4 +43,4 @@ cargo = true # Service Worker registration [build.tools] -sass = "style/input.scss" \ No newline at end of file +sass = "style/input.scss" diff --git a/crates/control-center-ui/assets/manifest.json b/crates/control-center-ui/assets/manifest.json index c85fc5b..c5bc041 100644 --- a/crates/control-center-ui/assets/manifest.json +++ b/crates/control-center-ui/assets/manifest.json @@ -128,4 +128,4 @@ "url": "/?protocol=%s" } ] -} \ No newline at end of file +} diff --git a/crates/control-center-ui/assets/sw.js b/crates/control-center-ui/assets/sw.js index 3d86c1b..8e0fe36 100644 --- a/crates/control-center-ui/assets/sw.js +++ b/crates/control-center-ui/assets/sw.js @@ -350,4 +350,4 @@ self.addEventListener('notificationclick', (event) => { ); }); -console.log('[SW] Service worker script loaded successfully'); \ No newline at end of file +console.log('[SW] Service worker script loaded successfully'); diff --git a/crates/control-center-ui/dist/index-956be635a01ed8a8.css b/crates/control-center-ui/dist/index-956be635a01ed8a8.css index 81753bf..effd624 100644 --- a/crates/control-center-ui/dist/index-956be635a01ed8a8.css +++ b/crates/control-center-ui/dist/index-956be635a01ed8a8.css @@ -41,4 +41,4 @@ p { justify-content: center; min-height: 100vh; color: #666; -} \ No newline at end of file +} diff --git a/crates/control-center-ui/dist/index.html b/crates/control-center-ui/dist/index.html index 5dba585..059d297 100644 --- a/crates/control-center-ui/dist/index.html +++ b/crates/control-center-ui/dist/index.html @@ -8,7 +8,7 @@ - + - \ No newline at end of file + diff --git a/crates/control-center-ui/index.html b/crates/control-center-ui/index.html index 0fb0bd0..fad9c2e 100644 --- a/crates/control-center-ui/index.html +++ b/crates/control-center-ui/index.html @@ -35,4 +35,4 @@ }); - \ No newline at end of file + diff --git a/crates/control-center-ui/manifest.json b/crates/control-center-ui/manifest.json index c85fc5b..c5bc041 100644 --- a/crates/control-center-ui/manifest.json +++ b/crates/control-center-ui/manifest.json @@ -128,4 +128,4 @@ "url": "/?protocol=%s" } ] -} \ No newline at end of file +} diff --git a/crates/control-center-ui/package.json b/crates/control-center-ui/package.json index 8f56219..ad0c883 100644 --- a/crates/control-center-ui/package.json +++ b/crates/control-center-ui/package.json @@ -32,4 +32,4 @@ "defaults", "not IE 11" ] -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/App.css b/crates/control-center-ui/src/App.css index f24dc32..f131ab4 100644 --- a/crates/control-center-ui/src/App.css +++ b/crates/control-center-ui/src/App.css @@ -38,4 +38,4 @@ .read-the-docs { color: #888; -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/App.tsx b/crates/control-center-ui/src/App.tsx index 3d96ed6..1313ee6 100644 --- a/crates/control-center-ui/src/App.tsx +++ b/crates/control-center-ui/src/App.tsx @@ -55,4 +55,4 @@ function App() { ); } -export default App; \ No newline at end of file +export default App; diff --git a/crates/control-center-ui/src/api/orchestrator.rs b/crates/control-center-ui/src/api/orchestrator.rs index 70599ad..7e47b6f 100644 --- a/crates/control-center-ui/src/api/orchestrator.rs +++ b/crates/control-center-ui/src/api/orchestrator.rs @@ -500,4 +500,4 @@ pub fn use_system_health() -> (ReadSignal>, ReadSignal refresh_action.dispatch(()); (health, loading, refresh_action) -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/api/orchestrator_client.rs b/crates/control-center-ui/src/api/orchestrator_client.rs index 5513cef..a15741a 100644 --- a/crates/control-center-ui/src/api/orchestrator_client.rs +++ b/crates/control-center-ui/src/api/orchestrator_client.rs @@ -405,4 +405,4 @@ impl Default for OrchestratorClient { fn default() -> Self { Self::new() } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/api/orchestrator_types.rs b/crates/control-center-ui/src/api/orchestrator_types.rs index 21c52bf..e901238 100644 --- a/crates/control-center-ui/src/api/orchestrator_types.rs +++ b/crates/control-center-ui/src/api/orchestrator_types.rs @@ -217,4 +217,4 @@ pub struct StateManagerStatistics { pub active_workflows: u32, pub storage_size_bytes: u64, pub average_snapshot_size_bytes: u64, -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/auth/crypto.rs b/crates/control-center-ui/src/auth/crypto.rs index 9f01b09..75324cd 100644 --- a/crates/control-center-ui/src/auth/crypto.rs +++ b/crates/control-center-ui/src/auth/crypto.rs @@ -305,4 +305,4 @@ mod tests { let decoded = CryptoUtils::base64_url_decode(&encoded).unwrap(); assert_eq!(data, decoded.as_slice()); } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/auth/http_interceptor.rs b/crates/control-center-ui/src/auth/http_interceptor.rs index 06ff518..e884967 100644 --- a/crates/control-center-ui/src/auth/http_interceptor.rs +++ b/crates/control-center-ui/src/auth/http_interceptor.rs @@ -428,4 +428,4 @@ impl OfflineRequestQueue { pub fn queue_size(&self) -> usize { self.queue.get().len() } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/auth/storage.rs b/crates/control-center-ui/src/auth/storage.rs index 369bbbe..88c1535 100644 --- a/crates/control-center-ui/src/auth/storage.rs +++ b/crates/control-center-ui/src/auth/storage.rs @@ -199,4 +199,4 @@ impl Default for SecureTokenStorage { fn default() -> Self { Self::new().expect("Failed to create SecureTokenStorage") } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/auth/token_manager.rs b/crates/control-center-ui/src/auth/token_manager.rs index ae41152..020d73a 100644 --- a/crates/control-center-ui/src/auth/token_manager.rs +++ b/crates/control-center-ui/src/auth/token_manager.rs @@ -218,4 +218,4 @@ pub fn use_auth_context() -> AuthContext { pub fn use_token_manager() -> TokenManager { let context = use_auth_context(); context.token_manager -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/auth/webauthn.rs b/crates/control-center-ui/src/auth/webauthn.rs index e05819f..c7ec8ae 100644 --- a/crates/control-center-ui/src/auth/webauthn.rs +++ b/crates/control-center-ui/src/auth/webauthn.rs @@ -522,4 +522,4 @@ impl WebAuthnManager { // if WebAuthn is supported self.is_supported() } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/components/audit/AuditLogViewer.tsx b/crates/control-center-ui/src/components/audit/AuditLogViewer.tsx index 3672a1b..02590db 100644 --- a/crates/control-center-ui/src/components/audit/AuditLogViewer.tsx +++ b/crates/control-center-ui/src/components/audit/AuditLogViewer.tsx @@ -430,4 +430,4 @@ export const AuditLogViewer: React.FC = () => { ); }; -export default AuditLogViewer; \ No newline at end of file +export default AuditLogViewer; diff --git a/crates/control-center-ui/src/components/audit/ComplianceReportGenerator.tsx b/crates/control-center-ui/src/components/audit/ComplianceReportGenerator.tsx index 4e3bdd3..6fa2f73 100644 --- a/crates/control-center-ui/src/components/audit/ComplianceReportGenerator.tsx +++ b/crates/control-center-ui/src/components/audit/ComplianceReportGenerator.tsx @@ -665,4 +665,4 @@ export const ComplianceReportGenerator: React.FC = ({ ); -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/src/components/audit/ExportModal.tsx b/crates/control-center-ui/src/components/audit/ExportModal.tsx index d4cf46a..3b3ed5c 100644 --- a/crates/control-center-ui/src/components/audit/ExportModal.tsx +++ b/crates/control-center-ui/src/components/audit/ExportModal.tsx @@ -673,4 +673,4 @@ export const ExportModal: React.FC = ({ ); -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/src/components/audit/LogDetailModal.tsx b/crates/control-center-ui/src/components/audit/LogDetailModal.tsx index b82f054..69b7d15 100644 --- a/crates/control-center-ui/src/components/audit/LogDetailModal.tsx +++ b/crates/control-center-ui/src/components/audit/LogDetailModal.tsx @@ -583,4 +583,4 @@ export const LogDetailModal: React.FC = ({ )} ); -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/src/components/audit/RealTimeIndicator.tsx b/crates/control-center-ui/src/components/audit/RealTimeIndicator.tsx index 7334f5d..ebc9290 100644 --- a/crates/control-center-ui/src/components/audit/RealTimeIndicator.tsx +++ b/crates/control-center-ui/src/components/audit/RealTimeIndicator.tsx @@ -142,4 +142,4 @@ export const RealTimeIndicator: React.FC = ({ ); -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/src/components/audit/SearchFilters.tsx b/crates/control-center-ui/src/components/audit/SearchFilters.tsx index b42453b..6eac2cd 100644 --- a/crates/control-center-ui/src/components/audit/SearchFilters.tsx +++ b/crates/control-center-ui/src/components/audit/SearchFilters.tsx @@ -729,4 +729,4 @@ function debounce any>( }; } -export default SearchFilters; \ No newline at end of file +export default SearchFilters; diff --git a/crates/control-center-ui/src/components/audit/VirtualizedLogTable.tsx b/crates/control-center-ui/src/components/audit/VirtualizedLogTable.tsx index a05fb21..78e17b9 100644 --- a/crates/control-center-ui/src/components/audit/VirtualizedLogTable.tsx +++ b/crates/control-center-ui/src/components/audit/VirtualizedLogTable.tsx @@ -516,4 +516,4 @@ export const VirtualizedLogTable: React.FC = ({ ); }; -export default VirtualizedLogTable; \ No newline at end of file +export default VirtualizedLogTable; diff --git a/crates/control-center-ui/src/components/notifications.rs b/crates/control-center-ui/src/components/notifications.rs index 0005f36..56ab23b 100644 --- a/crates/control-center-ui/src/components/notifications.rs +++ b/crates/control-center-ui/src/components/notifications.rs @@ -502,4 +502,4 @@ pub mod templates { pub fn theme_changed(theme: &str) -> NotificationData { NotificationData::new(&format!("Theme changed to {}", theme), NotificationLevel::Info) } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/components/policies/mod.rs b/crates/control-center-ui/src/components/policies/mod.rs index 89ab72b..8d8e71c 100644 --- a/crates/control-center-ui/src/components/policies/mod.rs +++ b/crates/control-center-ui/src/components/policies/mod.rs @@ -25,4 +25,4 @@ pub use approval_workflow::ApprovalWorkflow; pub use metrics_dashboard::MetricsDashboard; pub use violation_debugger::ViolationDebugger; pub use role_mining::RoleMining; -pub use what_if_simulator::WhatIfSimulator; \ No newline at end of file +pub use what_if_simulator::WhatIfSimulator; diff --git a/crates/control-center-ui/src/components/policies/policy_editor.rs b/crates/control-center-ui/src/components/policies/policy_editor.rs index 5f7d16f..7c2e2cc 100644 --- a/crates/control-center-ui/src/components/policies/policy_editor.rs +++ b/crates/control-center-ui/src/components/policies/policy_editor.rs @@ -472,4 +472,4 @@ fn init_monaco_editor(element: &web_sys::Element, initial_value: String) { js_sys::Reflect::set(&options, &"theme".into(), &"vs-dark".into()).unwrap(); create(element, &options); -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/hooks/mod.rs b/crates/control-center-ui/src/hooks/mod.rs index 8b13789..e69de29 100644 --- a/crates/control-center-ui/src/hooks/mod.rs +++ b/crates/control-center-ui/src/hooks/mod.rs @@ -1 +0,0 @@ - diff --git a/crates/control-center-ui/src/hooks/useWebSocket.ts b/crates/control-center-ui/src/hooks/useWebSocket.ts index 085162f..5a58922 100644 --- a/crates/control-center-ui/src/hooks/useWebSocket.ts +++ b/crates/control-center-ui/src/hooks/useWebSocket.ts @@ -215,4 +215,4 @@ export const useWebSocket = (options: UseWebSocketOptions): UseWebSocketReturn = close, reconnectAttempts, }; -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/src/index.css b/crates/control-center-ui/src/index.css index 81753bf..effd624 100644 --- a/crates/control-center-ui/src/index.css +++ b/crates/control-center-ui/src/index.css @@ -41,4 +41,4 @@ p { justify-content: center; min-height: 100vh; color: #666; -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/lib.rs b/crates/control-center-ui/src/lib.rs index 1ed0fd3..0944ca3 100644 --- a/crates/control-center-ui/src/lib.rs +++ b/crates/control-center-ui/src/lib.rs @@ -23,4 +23,4 @@ pub fn hydrate() { tracing_wasm::set_as_global_default(); leptos::mount_to_body(App); -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/main.tsx b/crates/control-center-ui/src/main.tsx index 34fa69a..57ddf40 100644 --- a/crates/control-center-ui/src/main.tsx +++ b/crates/control-center-ui/src/main.tsx @@ -46,4 +46,4 @@ ReactDOM.createRoot(document.getElementById('root')!).render( -); \ No newline at end of file +); diff --git a/crates/control-center-ui/src/pages/infrastructure.rs b/crates/control-center-ui/src/pages/infrastructure.rs index 483b9e9..762b261 100644 --- a/crates/control-center-ui/src/pages/infrastructure.rs +++ b/crates/control-center-ui/src/pages/infrastructure.rs @@ -660,4 +660,4 @@ fn BatchWorkflowModal( } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/pages/users.rs b/crates/control-center-ui/src/pages/users.rs index c9f5ff0..36a3e95 100644 --- a/crates/control-center-ui/src/pages/users.rs +++ b/crates/control-center-ui/src/pages/users.rs @@ -762,4 +762,4 @@ fn BulkOperationsModal( } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/services/api.ts b/crates/control-center-ui/src/services/api.ts index 99f615e..4627289 100644 --- a/crates/control-center-ui/src/services/api.ts +++ b/crates/control-center-ui/src/services/api.ts @@ -321,4 +321,4 @@ export const auditApi = { }; export default auditApi; -export { ApiError }; \ No newline at end of file +export { ApiError }; diff --git a/crates/control-center-ui/src/services/dashboard_config.rs b/crates/control-center-ui/src/services/dashboard_config.rs index dd117f3..255a4e5 100644 --- a/crates/control-center-ui/src/services/dashboard_config.rs +++ b/crates/control-center-ui/src/services/dashboard_config.rs @@ -864,4 +864,4 @@ impl WidgetPermissions { required_roles: vec![], // All roles can view } } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/services/export.rs b/crates/control-center-ui/src/services/export.rs index 789e528..403ffbf 100644 --- a/crates/control-center-ui/src/services/export.rs +++ b/crates/control-center-ui/src/services/export.rs @@ -730,4 +730,4 @@ fn format_description(format: &ExportFormat) -> &'static str { ExportFormat::Excel => "Microsoft Excel format", ExportFormat::Json => "Structured data format", } -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/types/audit.ts b/crates/control-center-ui/src/types/audit.ts index 93cb7ba..6d8f123 100644 --- a/crates/control-center-ui/src/types/audit.ts +++ b/crates/control-center-ui/src/types/audit.ts @@ -304,4 +304,4 @@ export interface WebSocketMessage { type: 'new_audit_log' | 'compliance_alert' | 'system_status' | 'heartbeat'; data: any; timestamp: Date; -} \ No newline at end of file +} diff --git a/crates/control-center-ui/src/types/policy.rs b/crates/control-center-ui/src/types/policy.rs index 224cbde..8cb81a2 100644 --- a/crates/control-center-ui/src/types/policy.rs +++ b/crates/control-center-ui/src/types/policy.rs @@ -359,4 +359,4 @@ pub struct SimulationResult { pub performance_metrics: HashMap, pub recommendations: Vec, pub risk_assessment: RiskLevel, -} \ No newline at end of file +} diff --git a/crates/control-center-ui/sw.js b/crates/control-center-ui/sw.js index 3d86c1b..8e0fe36 100644 --- a/crates/control-center-ui/sw.js +++ b/crates/control-center-ui/sw.js @@ -350,4 +350,4 @@ self.addEventListener('notificationclick', (event) => { ); }); -console.log('[SW] Service worker script loaded successfully'); \ No newline at end of file +console.log('[SW] Service worker script loaded successfully'); diff --git a/crates/control-center-ui/tailwind.config.js b/crates/control-center-ui/tailwind.config.js index bc40672..ea5fb56 100644 --- a/crates/control-center-ui/tailwind.config.js +++ b/crates/control-center-ui/tailwind.config.js @@ -159,4 +159,4 @@ export default { logs: false, themeRoot: ":root", }, -}; \ No newline at end of file +}; diff --git a/crates/control-center-ui/test.html b/crates/control-center-ui/test.html index 36ec91d..7474925 100644 --- a/crates/control-center-ui/test.html +++ b/crates/control-center-ui/test.html @@ -24,4 +24,4 @@ }); - \ No newline at end of file + diff --git a/crates/control-center-ui/tsconfig.json b/crates/control-center-ui/tsconfig.json index ffc08df..2415ca4 100644 --- a/crates/control-center-ui/tsconfig.json +++ b/crates/control-center-ui/tsconfig.json @@ -28,4 +28,4 @@ }, "include": ["src"], "references": [{ "path": "./tsconfig.node.json" }] -} \ No newline at end of file +} diff --git a/crates/control-center-ui/vite.config.ts b/crates/control-center-ui/vite.config.ts index 204f50f..495825c 100644 --- a/crates/control-center-ui/vite.config.ts +++ b/crates/control-center-ui/vite.config.ts @@ -40,4 +40,4 @@ export default defineConfig({ } } } -}) \ No newline at end of file +}) diff --git a/crates/control-center/Cargo.toml b/crates/control-center/Cargo.toml index f6feb70..a4fb4e3 100644 --- a/crates/control-center/Cargo.toml +++ b/crates/control-center/Cargo.toml @@ -169,4 +169,4 @@ path = "src/lib.rs" [[bin]] name = "control-center" path = "src/main.rs" -required-features = ["all"] \ No newline at end of file +required-features = ["all"] diff --git a/crates/control-center/policies/data-classification.cedar b/crates/control-center/policies/data-classification.cedar index 9b22e9d..a7f8eb6 100644 --- a/crates/control-center/policies/data-classification.cedar +++ b/crates/control-center/policies/data-classification.cedar @@ -195,4 +195,4 @@ permit(principal, action, resource) when { resource.classification in ["confidential", "secret", "top_secret"] || resource has data_type && resource.data_type in ["pii", "phi", "financial", "intellectual_property"] -}; \ No newline at end of file +}; diff --git a/crates/control-center/policies/geo-restriction.cedar b/crates/control-center/policies/geo-restriction.cedar index 4fa16d4..b0dafdd 100644 --- a/crates/control-center/policies/geo-restriction.cedar +++ b/crates/control-center/policies/geo-restriction.cedar @@ -175,4 +175,4 @@ permit(principal, action, resource) when { resource has geo_restricted || resource has data_classification in ["sensitive", "confidential", "restricted"] ) -}; \ No newline at end of file +}; diff --git a/crates/control-center/policies/maintenance-window.cedar b/crates/control-center/policies/maintenance-window.cedar index 56b24a3..37672df 100644 --- a/crates/control-center/policies/maintenance-window.cedar +++ b/crates/control-center/policies/maintenance-window.cedar @@ -116,4 +116,4 @@ permit( ) when { principal has role && principal.role in ["MonitoringService", "AlertManager", "Observer"] -}; \ No newline at end of file +}; diff --git a/crates/control-center/policies/production-approval.cedar b/crates/control-center/policies/production-approval.cedar index ddf16d5..5d53417 100644 --- a/crates/control-center/policies/production-approval.cedar +++ b/crates/control-center/policies/production-approval.cedar @@ -82,4 +82,4 @@ permit( principal.role in ["SRE", "MaintenanceTeam"] && principal has maintenance_approval && principal.maintenance_approval.valid == true -}; \ No newline at end of file +}; diff --git a/crates/control-center/policies/require-mfa.cedar b/crates/control-center/policies/require-mfa.cedar index 1c4fd10..4961d59 100644 --- a/crates/control-center/policies/require-mfa.cedar +++ b/crates/control-center/policies/require-mfa.cedar @@ -54,4 +54,4 @@ permit( principal.mfa_exemption.approved == true && principal.mfa_exemption.expires_at > context.time.timestamp && principal.mfa_exemption.justification != "" -}; \ No newline at end of file +}; diff --git a/crates/control-center/policies/time-based-access.cedar b/crates/control-center/policies/time-based-access.cedar index ae69d3b..daff38b 100644 --- a/crates/control-center/policies/time-based-access.cedar +++ b/crates/control-center/policies/time-based-access.cedar @@ -119,4 +119,4 @@ permit( principal.emergency_access.expires_at > context.time.timestamp && principal.emergency_access.incident_level in ["critical", "high"] && principal.emergency_access.authorized_by in ["IncidentCommander", "CISO", "CTO"] -}; \ No newline at end of file +}; diff --git a/crates/control-center/tests/data/mock_resources.json b/crates/control-center/tests/data/mock_resources.json index 7dc3d13..a2ee05d 100644 --- a/crates/control-center/tests/data/mock_resources.json +++ b/crates/control-center/tests/data/mock_resources.json @@ -190,4 +190,4 @@ "change_control": true } ] -} \ No newline at end of file +} diff --git a/crates/control-center/tests/data/mock_users.json b/crates/control-center/tests/data/mock_users.json index e5a068e..f0a75fb 100644 --- a/crates/control-center/tests/data/mock_users.json +++ b/crates/control-center/tests/data/mock_users.json @@ -154,4 +154,4 @@ } } ] -} \ No newline at end of file +} diff --git a/crates/mcp-server/Cargo.toml b/crates/mcp-server/Cargo.toml index 2ec1932..82c30e4 100644 --- a/crates/mcp-server/Cargo.toml +++ b/crates/mcp-server/Cargo.toml @@ -98,4 +98,4 @@ path = "src/lib.rs" [[bench]] name = "performance" -harness = false \ No newline at end of file +harness = false diff --git a/crates/mcp-server/src/main.rs b/crates/mcp-server/src/main.rs index 31f9b80..7439943 100644 --- a/crates/mcp-server/src/main.rs +++ b/crates/mcp-server/src/main.rs @@ -381,19 +381,19 @@ impl ProvisioningMCPServer { fn handle_create_server(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let description = arguments.get("description") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("description is required".to_string()))?; - + let infra_name = arguments.get("infra_name") .and_then(|v| v.as_str()) .unwrap_or("ai-generated"); - + let provider = arguments.get("provider") .and_then(|v| v.as_str()) .unwrap_or("aws"); - + let check_mode = arguments.get("check_mode") .and_then(|v| v.as_bool()) .unwrap_or(true); @@ -428,7 +428,7 @@ impl ProvisioningMCPServer { // Execute provisioning command let result = self.engine.create_server(&parsed_config, check_mode)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("✅ Server creation completed:\n\n{}", result)))], is_error: Some(false), @@ -442,15 +442,15 @@ impl ProvisioningMCPServer { fn handle_ai_template(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let description = arguments.get("description") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("description is required".to_string()))?; - + let template_type = arguments.get("template_type") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("template_type is required".to_string()))?; - + let complexity = arguments.get("complexity") .and_then(|v| v.as_str()) .unwrap_or("medium"); @@ -458,7 +458,7 @@ impl ProvisioningMCPServer { info!("Generating {} template: {}", template_type, description); let template = self.tools.generate_ai_template(description, template_type, complexity)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("🤖 Generated {} template:\n\n```kcl\n{}\n```", template_type, template)))], is_error: Some(false), @@ -472,14 +472,14 @@ impl ProvisioningMCPServer { fn handle_query(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let query = arguments.get("query") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("query is required".to_string()))?; - + let infra_name = arguments.get("infra_name") .and_then(|v| v.as_str()); - + let output_format = arguments.get("output_format") .and_then(|v| v.as_str()) .unwrap_or("human"); @@ -487,7 +487,7 @@ impl ProvisioningMCPServer { info!("Processing query: {}", query); let result = self.engine.process_query(query, infra_name, output_format)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("🔍 Query result:\n\n{}", result)))], is_error: Some(false), @@ -501,19 +501,19 @@ impl ProvisioningMCPServer { fn handle_deploy_taskserv(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let service_name = arguments.get("service_name") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("service_name is required".to_string()))?; - + let infra_name = arguments.get("infra_name") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("infra_name is required".to_string()))?; - + let configuration = arguments.get("configuration") .cloned() .unwrap_or_default(); - + let check_mode = arguments.get("check_mode") .and_then(|v| v.as_bool()) .unwrap_or(true); @@ -521,7 +521,7 @@ impl ProvisioningMCPServer { info!("Deploying service {} to infrastructure {}", service_name, infra_name); let result = self.engine.deploy_taskserv(service_name, infra_name, &configuration, check_mode)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("⚙️ Service deployment result:\n\n{}", result)))], is_error: Some(false), @@ -535,20 +535,20 @@ impl ProvisioningMCPServer { fn handle_cluster_create(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let cluster_description = arguments.get("cluster_description") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("cluster_description is required".to_string()))?; - + let cluster_type = arguments.get("cluster_type") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("cluster_type is required".to_string()))?; - + let services = arguments.get("services") .and_then(|v| v.as_array()) .map(|arr| arr.iter().filter_map(|v| v.as_str()).collect::>()) .unwrap_or_default(); - + let infra_name = arguments.get("infra_name") .and_then(|v| v.as_str()) .unwrap_or("ai-cluster"); @@ -556,7 +556,7 @@ impl ProvisioningMCPServer { info!("Creating {} cluster: {}", cluster_type, cluster_description); let result = self.engine.create_cluster(cluster_description, cluster_type, &services, infra_name)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("🚢 Cluster creation result:\n\n{}", result)))], is_error: Some(false), @@ -570,10 +570,10 @@ impl ProvisioningMCPServer { fn handle_status(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let infra_name = arguments.get("infra_name") .and_then(|v| v.as_str()); - + let detailed = arguments.get("detailed") .and_then(|v| v.as_bool()) .unwrap_or(false); @@ -581,7 +581,7 @@ impl ProvisioningMCPServer { info!("Getting status for infrastructure: {:?}", infra_name); let result = self.engine.get_status(infra_name, detailed)?; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("📊 Infrastructure status:\n\n{}", result)))], is_error: Some(false), @@ -595,11 +595,11 @@ impl ProvisioningMCPServer { fn handle_ai_config(&self) -> impl Fn(CallToolRequest) -> Result + '_ { |request: CallToolRequest| -> Result { let arguments = request.params.arguments.unwrap_or_default(); - + let action = arguments.get("action") .and_then(|v| v.as_str()) .ok_or_else(|| ProvisioningError::InvalidInput("action is required".to_string()))?; - + let provider = arguments.get("provider") .and_then(|v| v.as_str()); @@ -608,7 +608,7 @@ impl ProvisioningMCPServer { let result = match action { "status" => self.tools.get_ai_status()?, "configure" => { - let provider = provider.ok_or_else(|| + let provider = provider.ok_or_else(|| ProvisioningError::InvalidInput("provider is required for configure action".to_string()) )?; self.tools.configure_ai(provider)? @@ -616,7 +616,7 @@ impl ProvisioningMCPServer { "test" => self.tools.test_ai_connection()?, _ => return Err(ProvisioningError::InvalidInput(format!("Unknown action: {}", action)).into()), }; - + Ok(CallToolResult { content: vec![rust_mcp_sdk::schema::ContentBlock::TextContent(rust_mcp_sdk::schema::TextContent::from(format!("🤖 AI configuration result:\n\n{}", result)))], is_error: Some(false), @@ -1412,13 +1412,13 @@ async fn main() -> Result<()> { // Load configuration let config = Config::load(args.config, args.provisioning_path, args.debug)?; - + info!("Starting Provisioning MCP Server (Rust-native)"); info!("Provisioning path: {}", config.provisioning_path.display()); - + // Create and run server let server = ProvisioningMCPServer::new(config)?; server.run().await?; Ok(()) -} \ No newline at end of file +} diff --git a/crates/mcp-server/src/tools/provisioning_tools.rs.bak2 b/crates/mcp-server/src/tools/provisioning_tools.rs.bak2 index 486a56a..7ef254b 100644 --- a/crates/mcp-server/src/tools/provisioning_tools.rs.bak2 +++ b/crates/mcp-server/src/tools/provisioning_tools.rs.bak2 @@ -585,4 +585,4 @@ pub fn get_provisioning_tools() -> Vec { }) } ] -} \ No newline at end of file +} diff --git a/crates/orchestrator/.cargo/config.toml b/crates/orchestrator/.cargo/config.toml index c9adeef..df7a79e 100644 --- a/crates/orchestrator/.cargo/config.toml +++ b/crates/orchestrator/.cargo/config.toml @@ -39,4 +39,4 @@ rustflags = [ rustflags = [ "-W", "unused-extern-crates", "-W", "rust-2021-compatibility" -] \ No newline at end of file +] diff --git a/crates/orchestrator/Cargo.toml b/crates/orchestrator/Cargo.toml index 89779be..ffed46d 100644 --- a/crates/orchestrator/Cargo.toml +++ b/crates/orchestrator/Cargo.toml @@ -165,4 +165,4 @@ harness = false [[bench]] name = "migration_benchmarks" -harness = false \ No newline at end of file +harness = false diff --git a/crates/orchestrator/_data/queue.rkvs/tasks/237315de-8a7f-430a-8804-65d050f3bfb0.json b/crates/orchestrator/_data/queue.rkvs/tasks/237315de-8a7f-430a-8804-65d050f3bfb0.json index 18b63fe..b3386de 100644 --- a/crates/orchestrator/_data/queue.rkvs/tasks/237315de-8a7f-430a-8804-65d050f3bfb0.json +++ b/crates/orchestrator/_data/queue.rkvs/tasks/237315de-8a7f-430a-8804-65d050f3bfb0.json @@ -16,4 +16,4 @@ "completed_at": "2025-09-25T03:06:56.269978Z", "output": null, "error": "Nushell command failed: fatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nError: nu::parser::unknown_flag\n\n x The `provisioning taskserv` command doesn't have flag `infra`.\n ,-[:1:33]\n 1 | main taskserv create kubernetes --infra wuji --settings --check\n : ^^^|^^^\n : `-- unknown flag\n `----\n help: Use `--help` to see available flags\n\n" -} \ No newline at end of file +} diff --git a/crates/orchestrator/_data/queue.rkvs/tasks/7ff31593-cb5f-4a52-88ff-3a3d9bfbf931.json b/crates/orchestrator/_data/queue.rkvs/tasks/7ff31593-cb5f-4a52-88ff-3a3d9bfbf931.json index ad43d49..0c1605b 100644 --- a/crates/orchestrator/_data/queue.rkvs/tasks/7ff31593-cb5f-4a52-88ff-3a3d9bfbf931.json +++ b/crates/orchestrator/_data/queue.rkvs/tasks/7ff31593-cb5f-4a52-88ff-3a3d9bfbf931.json @@ -16,4 +16,4 @@ "completed_at": "2025-09-25T03:07:02.703838Z", "output": null, "error": "Nushell command failed: fatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nError: nu::parser::export_not_found\n\n x Export not found.\n ,-[/Users/Akasha/repo-cnz/src/provisioning/core/nulib/clusters/handlers.nu:1:14]\n 1 | use utils.nu servers_selector\n : ^^^^^^^^|^^^^^^^\n : `-- could not find imports\n 2 | use ../lib_provisioning/config/accessor.nu *\n `----\n\n" -} \ No newline at end of file +} diff --git a/crates/orchestrator/_data/queue.rkvs/tasks/b14f9a93-318b-4d56-aa73-a5c1e38a2a9b.json b/crates/orchestrator/_data/queue.rkvs/tasks/b14f9a93-318b-4d56-aa73-a5c1e38a2a9b.json index 5c1c9f2..04c8f08 100644 --- a/crates/orchestrator/_data/queue.rkvs/tasks/b14f9a93-318b-4d56-aa73-a5c1e38a2a9b.json +++ b/crates/orchestrator/_data/queue.rkvs/tasks/b14f9a93-318b-4d56-aa73-a5c1e38a2a9b.json @@ -15,4 +15,4 @@ "completed_at": "2025-09-25T03:01:54.544309Z", "output": null, "error": "Nushell command failed: fatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git\nError: nu::shell::error\n\n x Error executing KCL\n ,-[/Users/Akasha/repo-cnz/src/provisioning/core/nulib/lib_provisioning/plugins_defs.nu:106:13]\n 105 | } else {\n 106 | kcl-run $kcl_file -f $format\n : ^^^|^^^\n : `-| ❌: EvaluationError\n : | \u001b[1;38;5;12m-->\u001b[0m /Users/Akasha/repo-cnz/klab/wuji/defs/servers.k:3:4\n : | \u001b[1;38;5;12m |\u001b[0m\n : | \u001b[1;38;5;12m3 |\u001b[0m upcloud_prov.Server_upcloud {\n : | \u001b[1;38;5;12m |\u001b[0m\u001b[1;38;5;9m ^\u001b[0m \u001b[1;38;5;9mInstance check failed\u001b[0m\n : | \u001b[1;38;5;12m |\u001b[0m\n : | \n : | \u001b[1;38;5;12m-->\u001b[0m /Users/Akasha/repo-cnz/src/provisioning/providers/upcloud/kcl/defaults_upcloud.k:103:1\n : | \u001b[1;38;5;12m |\u001b[0m\n : | \u001b[1;38;5;12m103 |\u001b[0m liveness_ip == Undefined or regex.match(liveness_ip, \"^{{.*}}$\") or regex.match(liveness_ip, \"^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$\"), \"'liveness_ip = ${liveness_ip}' check value definition (use {{variable}} or xx.xx.xx.xx)\"\n : | \u001b[1;38;5;12m |\u001b[0m\u001b[1;38;5;9m \u001b[0m \u001b[1;38;5;9mCheck failed on the condition: 'liveness_ip = $network_public_ip' check value definition (use {{variable}} or xx.xx.xx.xx)\u001b[0m\n : | \u001b[1;38;5;12m |\u001b[0m\n : | \n : | \n : | \n 107 | #kcl-run $kcl_file -Y $settings_json\n `----\n\n" -} \ No newline at end of file +} diff --git a/crates/orchestrator/_data/queue.rkvs/tasks/c2050e55-46d9-47bc-abcd-8b137a6ee459.json b/crates/orchestrator/_data/queue.rkvs/tasks/c2050e55-46d9-47bc-abcd-8b137a6ee459.json index 6ef0e16..50d430e 100644 --- a/crates/orchestrator/_data/queue.rkvs/tasks/c2050e55-46d9-47bc-abcd-8b137a6ee459.json +++ b/crates/orchestrator/_data/queue.rkvs/tasks/c2050e55-46d9-47bc-abcd-8b137a6ee459.json @@ -15,4 +15,4 @@ "completed_at": "2025-09-25T02:55:53.853524Z", "output": null, "error": "Nushell command failed: Error: nu::shell::external_command\n\n x External command failed\n ,-[source:1:1]\n 1 | ./core/nulib/provisioning server create --infra wuji --settings --check\n : ^^^^^^^^^^^^|^^^^^^^^^^^^\n : `-- Command `./core/nulib/provisioning` not found\n `----\n help: `./core/nulib/provisioning` is neither a Nushell built-in or a known\n external command\n\n" -} \ No newline at end of file +} diff --git a/crates/orchestrator/_data/tasks/999c70f4-3fa4-4879-bbd2-e85f5d0027f3.json b/crates/orchestrator/_data/tasks/999c70f4-3fa4-4879-bbd2-e85f5d0027f3.json index ce834f6..ddb4fb9 100644 --- a/crates/orchestrator/_data/tasks/999c70f4-3fa4-4879-bbd2-e85f5d0027f3.json +++ b/crates/orchestrator/_data/tasks/999c70f4-3fa4-4879-bbd2-e85f5d0027f3.json @@ -14,4 +14,4 @@ "completed_at": "2025-09-26T04:04:18.653061Z", "output": null, "error": "Nushell command failed: Error: nu::parser::unknown_flag\n\n x The `provisioning taskserv` command doesn't have flag `infra`.\n ,-[:1:29]\n 1 | main taskserv check-updates --infra --settings --check\n : ^^^|^^^\n : `-- unknown flag\n `----\n help: Use `--help` to see available flags\n\n" -} \ No newline at end of file +} diff --git a/crates/orchestrator/rollback_instructions_14043518-e459-4316-aadd-6ee6d221e644.txt b/crates/orchestrator/rollback_instructions_14043518-e459-4316-aadd-6ee6d221e644.txt index 8191c61..b4f040b 100644 --- a/crates/orchestrator/rollback_instructions_14043518-e459-4316-aadd-6ee6d221e644.txt +++ b/crates/orchestrator/rollback_instructions_14043518-e459-4316-aadd-6ee6d221e644.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_1e9b4914-f290-4bec-80f2-35128250f9fd.txt b/crates/orchestrator/rollback_instructions_1e9b4914-f290-4bec-80f2-35128250f9fd.txt index 16d3109..c35baf2 100644 --- a/crates/orchestrator/rollback_instructions_1e9b4914-f290-4bec-80f2-35128250f9fd.txt +++ b/crates/orchestrator/rollback_instructions_1e9b4914-f290-4bec-80f2-35128250f9fd.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_21c8a4af-2562-4304-b5ec-90fb1b5fd0ab.txt b/crates/orchestrator/rollback_instructions_21c8a4af-2562-4304-b5ec-90fb1b5fd0ab.txt index bed5bc9..f64d3f8 100644 --- a/crates/orchestrator/rollback_instructions_21c8a4af-2562-4304-b5ec-90fb1b5fd0ab.txt +++ b/crates/orchestrator/rollback_instructions_21c8a4af-2562-4304-b5ec-90fb1b5fd0ab.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_317e31fa-b549-49c9-a212-1f13445d913f.txt b/crates/orchestrator/rollback_instructions_317e31fa-b549-49c9-a212-1f13445d913f.txt index 4e68a77..753a2f7 100644 --- a/crates/orchestrator/rollback_instructions_317e31fa-b549-49c9-a212-1f13445d913f.txt +++ b/crates/orchestrator/rollback_instructions_317e31fa-b549-49c9-a212-1f13445d913f.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_5da5d888-527e-4aac-ab53-93e9a30014cc.txt b/crates/orchestrator/rollback_instructions_5da5d888-527e-4aac-ab53-93e9a30014cc.txt index 0dcd7ad..4b46dee 100644 --- a/crates/orchestrator/rollback_instructions_5da5d888-527e-4aac-ab53-93e9a30014cc.txt +++ b/crates/orchestrator/rollback_instructions_5da5d888-527e-4aac-ab53-93e9a30014cc.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_7c16746f-24b0-4bcc-8a49-b5dc6bc1f0c7.txt b/crates/orchestrator/rollback_instructions_7c16746f-24b0-4bcc-8a49-b5dc6bc1f0c7.txt index 1a10b00..c6b869f 100644 --- a/crates/orchestrator/rollback_instructions_7c16746f-24b0-4bcc-8a49-b5dc6bc1f0c7.txt +++ b/crates/orchestrator/rollback_instructions_7c16746f-24b0-4bcc-8a49-b5dc6bc1f0c7.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/rollback_instructions_cb3ced5a-ab49-4754-ba90-c815ab0948ba.txt b/crates/orchestrator/rollback_instructions_cb3ced5a-ab49-4754-ba90-c815ab0948ba.txt index 09fa334..22a0440 100644 --- a/crates/orchestrator/rollback_instructions_cb3ced5a-ab49-4754-ba90-c815ab0948ba.txt +++ b/crates/orchestrator/rollback_instructions_cb3ced5a-ab49-4754-ba90-c815ab0948ba.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/scripts/migrate-storage.nu b/crates/orchestrator/scripts/migrate-storage.nu index bccca26..1fb1abe 100755 --- a/crates/orchestrator/scripts/migrate-storage.nu +++ b/crates/orchestrator/scripts/migrate-storage.nu @@ -634,4 +634,4 @@ def "migrate status" [] { } catch { print "No active migrations found or binary not available" } -} \ No newline at end of file +} diff --git a/crates/orchestrator/scripts/start-orchestrator.nu b/crates/orchestrator/scripts/start-orchestrator.nu index 301fbfa..721dbd4 100755 --- a/crates/orchestrator/scripts/start-orchestrator.nu +++ b/crates/orchestrator/scripts/start-orchestrator.nu @@ -194,4 +194,4 @@ def check_orchestrator_status [pid_file: string, port: int = 9090] { } else { print "⚠️ Could not connect to orchestrator API" } -} \ No newline at end of file +} diff --git a/crates/orchestrator/src/monitoring.rs b/crates/orchestrator/src/monitoring.rs index 40a65c9..08dab92 100644 --- a/crates/orchestrator/src/monitoring.rs +++ b/crates/orchestrator/src/monitoring.rs @@ -175,4 +175,4 @@ impl Default for MetricsCollector { fn default() -> Self { Self::new() } -} \ No newline at end of file +} diff --git a/crates/orchestrator/src/storage/schema.surql b/crates/orchestrator/src/storage/schema.surql index 493efdd..0f6be3d 100644 --- a/crates/orchestrator/src/storage/schema.surql +++ b/crates/orchestrator/src/storage/schema.surql @@ -382,4 +382,4 @@ DEFINE FUNCTION fn::cleanup_metrics($older_than_days: number) { LET $deleted_metrics = DELETE metrics WHERE timestamp < $cutoff_time; RETURN array::len($deleted_metrics); -}; \ No newline at end of file +}; diff --git a/crates/orchestrator/wrks/rollback_instructions_c5016dba-c18e-4a56-af13-16e672ca4f0c.txt b/crates/orchestrator/wrks/rollback_instructions_c5016dba-c18e-4a56-af13-16e672ca4f0c.txt index f21e08f..1afd491 100644 --- a/crates/orchestrator/wrks/rollback_instructions_c5016dba-c18e-4a56-af13-16e672ca4f0c.txt +++ b/crates/orchestrator/wrks/rollback_instructions_c5016dba-c18e-4a56-af13-16e672ca4f0c.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations! diff --git a/crates/orchestrator/wrks/rollback_instructions_c7e05a80-213c-4f6c-a6a2-31f0bbe4d1aa.txt b/crates/orchestrator/wrks/rollback_instructions_c7e05a80-213c-4f6c-a6a2-31f0bbe4d1aa.txt index 22f40a4..eef3a92 100644 --- a/crates/orchestrator/wrks/rollback_instructions_c7e05a80-213c-4f6c-a6a2-31f0bbe4d1aa.txt +++ b/crates/orchestrator/wrks/rollback_instructions_c7e05a80-213c-4f6c-a6a2-31f0bbe4d1aa.txt @@ -17,4 +17,4 @@ Storage-specific cleanup commands: - For SurrealDB embedded: Delete database files in target directory - For SurrealDB server: Connect and drop/recreate database -IMPORTANT: Test data integrity before resuming operations! \ No newline at end of file +IMPORTANT: Test data integrity before resuming operations!