Phase2.5: Skill SetUp Process
All checks were successful
Build and Push / build (push) Successful in 1m41s
All checks were successful
Build and Push / build (push) Successful in 1m41s
This commit is contained in:
@@ -4,6 +4,8 @@ import {
|
||||
getSkillActivationRequestById,
|
||||
updateSkillActivationRequestStatus,
|
||||
} from "@/lib/db";
|
||||
import { getPackageDef } from "@/lib/packages";
|
||||
import { deletePackageSecrets } from "@/lib/openbao";
|
||||
|
||||
/**
|
||||
* POST /api/skills/requests/[id]/withdraw
|
||||
@@ -50,5 +52,23 @@ export async function POST(
|
||||
{ status: 409 }
|
||||
);
|
||||
}
|
||||
|
||||
// Cleanup: same logic as reject — the user submitted secrets
|
||||
// before the gate fired, and those are now orphaned in OpenBao.
|
||||
// Best-effort delete; failure logged but not propagated. Skip
|
||||
// customProvisioning packages (their deprovisioning is a
|
||||
// separate, dedicated endpoint).
|
||||
const def = getPackageDef(req.skillId);
|
||||
if (def?.requiresSecrets && !def.customProvisioning) {
|
||||
try {
|
||||
await deletePackageSecrets(req.tenantName, req.skillId);
|
||||
} catch (e) {
|
||||
console.error(
|
||||
`Failed to delete orphan secrets for ${req.tenantName}/${req.skillId} after withdraw:`,
|
||||
e
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return NextResponse.json(updated);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user