feat: add ops center and node onboarding flow
This commit is contained in:
@@ -21,6 +21,107 @@ export const runtimeApi = {
|
||||
action: (action: string) => http.post(`/runtime/actions/${action}`)
|
||||
};
|
||||
|
||||
export const opsApi = {
|
||||
overview: () => http.get("/ops/overview"),
|
||||
goLiveSummary: (params?: Record<string, unknown>) => http.get("/ops/go-live-summary", { params }),
|
||||
doctorDecision: (params?: Record<string, unknown>) => http.get("/ops/doctor-decision", { params }),
|
||||
goLiveSignoff: (params?: Record<string, unknown>) => http.get("/ops/go-live-signoff", { params }),
|
||||
goLiveBundle: (params?: Record<string, unknown>) => http.get("/ops/go-live-bundle", { params }),
|
||||
goLiveReview: (params?: Record<string, unknown>) => http.get("/ops/go-live-review", { params }),
|
||||
stackDiagnosis: (params?: Record<string, unknown>) => http.get("/ops/stack-diagnosis", { params }),
|
||||
linkSnapshot: () => http.get("/ops/link-snapshot"),
|
||||
inspectionOverview: (params?: Record<string, unknown>) => http.get("/ops/inspection-overview", { params }),
|
||||
activityStream: (params?: Record<string, unknown>) => http.get("/ops/activity-stream", { params }),
|
||||
driverFeed: () => http.get("/ops/driver-feed"),
|
||||
codexBrief: () => http.get("/ops/codex-brief"),
|
||||
capabilities: () => http.get("/ops/capabilities"),
|
||||
contracts: () => http.get("/ops/contracts"),
|
||||
contractDetail: (contractKey: string) => http.get(`/ops/contracts/${encodeURIComponent(contractKey)}`),
|
||||
actionTemplates: () => http.get("/ops/action-templates"),
|
||||
playbooks: () => http.get("/ops/playbooks"),
|
||||
playbookRuns: (params?: Record<string, unknown>) => http.get("/ops/playbook-runs", { params }),
|
||||
playbookRunDetail: (runCode: string) => http.get(`/ops/playbook-runs/${encodeURIComponent(runCode)}`),
|
||||
playbookRunEvents: (runCode: string, params?: Record<string, unknown>) =>
|
||||
http.get(`/ops/playbook-runs/${encodeURIComponent(runCode)}/events`, { params }),
|
||||
rerunPlaybookRun: (runCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/playbook-runs/${encodeURIComponent(runCode)}/rerun`, payload || {}),
|
||||
cancelPlaybookRun: (runCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/playbook-runs/${encodeURIComponent(runCode)}/cancel`, payload || {}),
|
||||
previewPlaybook: (payload: Record<string, unknown>) => http.post("/ops/playbooks/preview", payload),
|
||||
executePlaybook: (payload: Record<string, unknown>) => http.post("/ops/playbooks/execute", payload),
|
||||
blueprint: () => http.get("/ops/blueprint"),
|
||||
runbook: () => http.get("/ops/runbook"),
|
||||
resolveRunbookSequence: (sequenceKey: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/runbook/sequences/${encodeURIComponent(sequenceKey)}/resolve`, payload || {}),
|
||||
executeRunbookSequence: (sequenceKey: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/runbook/sequences/${encodeURIComponent(sequenceKey)}/execute`, payload || {}),
|
||||
nodes: () => http.get("/ops/nodes"),
|
||||
nodeHandover: (nodeCode: string, params?: Record<string, unknown>) =>
|
||||
http.get(`/ops/nodes/${encodeURIComponent(nodeCode)}/handover`, { params }),
|
||||
nodeOnboarding: (nodeCode: string, params?: Record<string, unknown>) =>
|
||||
http.get(`/ops/nodes/${encodeURIComponent(nodeCode)}/onboarding`, { params }),
|
||||
previewNodeOnboardingRecovery: (nodeCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/nodes/${encodeURIComponent(nodeCode)}/onboarding/recovery/preview`, payload || {}),
|
||||
executeNodeOnboardingRecovery: (nodeCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/nodes/${encodeURIComponent(nodeCode)}/onboarding/recovery/execute`, payload || {}),
|
||||
nodeSceneLog: (nodeCode: string, params?: Record<string, unknown>) =>
|
||||
http.get(`/ops/nodes/${encodeURIComponent(nodeCode)}/scene-log`, { params }),
|
||||
buildNodeHandoverBootstrapPlan: (nodeCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/nodes/${encodeURIComponent(nodeCode)}/handover/bootstrap-plan`, payload || {}),
|
||||
deliveryQueue: (nodeCode: string) => http.get(`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue`),
|
||||
deliveryQueueRecords: (nodeCode: string, params?: Record<string, unknown>) =>
|
||||
http.get(`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue/records`, { params }),
|
||||
flushDeliveryQueue: (nodeCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue/flush`, payload || {}),
|
||||
replayDeliveryQueue: (nodeCode: string, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue/replay`, payload || {}),
|
||||
replayDeliveryQueueRecord: (nodeCode: string, recordId: string, payload?: Record<string, unknown>) =>
|
||||
http.post(
|
||||
`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue/records/${encodeURIComponent(recordId)}/replay`,
|
||||
payload || {}
|
||||
),
|
||||
discardDeliveryQueueRecord: (nodeCode: string, recordId: string, payload?: Record<string, unknown>) =>
|
||||
http.post(
|
||||
`/ops/nodes/${encodeURIComponent(nodeCode)}/delivery-queue/records/${encodeURIComponent(recordId)}/discard`,
|
||||
payload || {}
|
||||
),
|
||||
upsertNode: (payload: Record<string, unknown>) => http.post("/ops/nodes", payload),
|
||||
syncNodesFromCluster: (dryRun = false) => http.post(`/ops/nodes/sync-from-cluster?dry_run=${dryRun ? "true" : "false"}`),
|
||||
previewPolicy: (payload: Record<string, unknown>) => http.post("/ops/policy/preview", payload),
|
||||
jobs: (params?: Record<string, unknown>) => http.get("/ops/jobs", { params }),
|
||||
jobDetail: (jobId: number) => http.get(`/ops/jobs/${jobId}`),
|
||||
jobEvents: (jobId: number, params?: Record<string, unknown>) => http.get(`/ops/jobs/${jobId}/events`, { params }),
|
||||
previewDriverAction: (payload: Record<string, unknown>) => http.post("/ops/driver-actions/preview", payload),
|
||||
resolveDriverAction: (payload: Record<string, unknown>) => http.post("/ops/driver-actions/resolve", payload),
|
||||
executeDriverAction: (payload: Record<string, unknown>) => http.post("/ops/driver-actions/execute", payload),
|
||||
executeResolvedDriverAction: (payload: Record<string, unknown>) => http.post("/ops/driver-actions/execute-resolved", payload),
|
||||
resolveCodexAction: (payload: Record<string, unknown>) => http.post("/ops/codex-actions/resolve", payload),
|
||||
executeCodexAction: (payload: Record<string, unknown>) => http.post("/ops/codex-actions/execute", payload),
|
||||
createJobBatch: (payload: Record<string, unknown>) => http.post("/ops/jobs/batch", payload),
|
||||
approveJob: (jobId: number, payload?: Record<string, unknown>) => http.post(`/ops/jobs/${jobId}/approve`, payload || {}),
|
||||
cancelJob: (jobId: number, payload?: Record<string, unknown>) => http.post(`/ops/jobs/${jobId}/cancel`, payload || {}),
|
||||
dispatchJob: (jobId: number) => http.post(`/ops/jobs/${jobId}/dispatch`),
|
||||
issueAgentToken: (payload: Record<string, unknown>) => http.post("/ops/agent/tokens", payload),
|
||||
buildAgentBootstrapPlan: (payload: Record<string, unknown>) => http.post("/ops/agent/bootstrap-plan", payload),
|
||||
releases: (params?: Record<string, unknown>) => http.get("/ops/releases", { params }),
|
||||
latestRelease: (channel = "stable") => http.get("/ops/releases/latest", { params: { channel } }),
|
||||
latestReleasePackageMetadata: () => http.get("/ops/releases/package-metadata/latest"),
|
||||
releaseLaunchpad: (channel = "stable") => http.get("/ops/releases/launchpad", { params: { channel } }),
|
||||
releaseDetail: (releaseId: number) => http.get(`/ops/releases/${releaseId}`),
|
||||
createRelease: (payload: Record<string, unknown>) => http.post("/ops/releases", payload),
|
||||
createReleaseFromLatestPackage: (payload?: Record<string, unknown>) => http.post("/ops/releases/from-package/latest", payload || {}),
|
||||
createReleaseFromLatestPackageAndSmartRollout: (payload?: Record<string, unknown>) =>
|
||||
http.post("/ops/releases/from-package/latest/smart-rollout", payload || {}),
|
||||
createSmartRolloutForRelease: (releaseId: number, payload?: Record<string, unknown>) =>
|
||||
http.post(`/ops/releases/${releaseId}/smart-rollout`, payload || {}),
|
||||
activateRelease: (releaseId: number) => http.post(`/ops/releases/${releaseId}/activate`),
|
||||
releaseRollouts: (releaseId: number, params?: Record<string, unknown>) => http.get(`/ops/releases/${releaseId}/rollouts`, { params }),
|
||||
createRollout: (releaseId: number, payload: Record<string, unknown>) => http.post(`/ops/releases/${releaseId}/rollouts`, payload),
|
||||
rolloutDetail: (rolloutId: number) => http.get(`/ops/rollouts/${rolloutId}`),
|
||||
rolloutJobs: (rolloutId: number, params?: Record<string, unknown>) => http.get(`/ops/rollouts/${rolloutId}/jobs`, { params }),
|
||||
advanceRollout: (rolloutId: number, payload?: Record<string, unknown>) => http.post(`/ops/rollouts/${rolloutId}/advance`, payload || {})
|
||||
};
|
||||
|
||||
export const settingsApi = {
|
||||
getSettings: () => http.get("/settings"),
|
||||
updateSettings: (payload: Record<string, unknown>) => http.put("/settings", payload),
|
||||
|
||||
Reference in New Issue
Block a user