- Update ops-agent/flows.example/update_scrum4me_web.yml with full deployment steps: git_status, git_fetch, git_log_ahead, git_pull, npm_ci, prisma_migrate_deploy, npm_run_build, systemctl_restart, and smoke test against thuis.jp-visser.nl/api/products - Add npm_ci, prisma_migrate_deploy, npm_run_build, and curl_smoke_scrum4me_thuis to commands.yml.example - Add /flows/update-scrum4me-web UI page with Run and Dry Run buttons, streaming terminal output, and link to audit log on completion Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
847 B
TypeScript
27 lines
847 B
TypeScript
import Link from 'next/link'
|
|
import { redirect } from 'next/navigation'
|
|
import { getCurrentUser } from '@/lib/session'
|
|
import FlowPanel from './_components/flow-panel'
|
|
|
|
export const dynamic = 'force-dynamic'
|
|
|
|
export default async function UpdateScrum4MeWebPage() {
|
|
const user = await getCurrentUser()
|
|
if (!user) redirect('/login')
|
|
|
|
return (
|
|
<div className="min-h-screen bg-background p-6">
|
|
<div className="mx-auto max-w-4xl space-y-6">
|
|
<div className="flex items-center gap-3">
|
|
<Link href="/" className="text-sm text-muted-foreground hover:text-foreground">
|
|
← Home
|
|
</Link>
|
|
<span className="text-muted-foreground">/</span>
|
|
<h1 className="text-2xl font-semibold tracking-tight">Update Scrum4Me Web</h1>
|
|
</div>
|
|
|
|
<FlowPanel />
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|