feat(export-import): add yaml export/import with id upsert for credentials, snippets, and scenarios
- all entities export a kind field (credential/snippet/scenario) for safe type checking on import - import upserts by id: overwrites if id exists, creates with explicit id otherwise - scenario export now includes id and step ids; import deletes old steps before recreating - add GET /:id/export and POST /import endpoints to credential and snippet controllers - add UuidBadge ui component: shortens uuid to first+last 4 hex chars, tooltip, clipboard copy with animated ClipboardCheck icon pop - apply UuidBadge across all entity id display sites (detail pages, card footers, table columns) - add export/import buttons to CredentialsPage, SnippetsPage, CredentialDetailPage, SnippetDetailPage
This commit is contained in:
@@ -27,7 +27,7 @@ export function EditStepPage() {
|
||||
|
||||
useEffect(() => {
|
||||
if (!id || !stepId) return;
|
||||
Promise.all([scenarios.get(Number(id)), steps.get(Number(id), Number(stepId))])
|
||||
Promise.all([scenarios.get(id), steps.get(id, stepId)])
|
||||
.then(([sc, st]) => {
|
||||
setScenario(sc);
|
||||
setStep(st);
|
||||
@@ -56,7 +56,7 @@ export function EditStepPage() {
|
||||
setSaving(true);
|
||||
setError(null);
|
||||
try {
|
||||
await steps.update(Number(id), Number(stepId), {
|
||||
await steps.update(id!, stepId!, {
|
||||
order: Number(order),
|
||||
title: title.trim() || undefined,
|
||||
type,
|
||||
|
||||
Reference in New Issue
Block a user