Files
RutraandClaude Opus 5.5 c106fcfc62 Édition du docker-compose.yml depuis la page d'un conteneur
Vérification par docker compose config avant écriture, application avec
docker compose up -d et retour à la version précédente en cas d'échec.
Historique des versions par fichier. Le Caddyfile et le compose gardent
un retour à la ligne final.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:31:33 +02:00

443 lines
16 KiB
TypeScript

/* eslint-disable prettier/prettier */
/// <reference path="../manifest.d.ts" />
import type { ExtractBody, ExtractErrorResponse, ExtractQuery, ExtractQueryForGet, ExtractResponse } from '@tuyau/core/types'
import type { InferInput, SimpleError } from '@vinejs/vine/types'
export type ParamValue = string | number | bigint | boolean
export interface Registry {
'auth.login': {
methods: ["POST"]
pattern: '/api/auth/login'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['login']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['login']>>>
}
}
'auth.logout': {
methods: ["POST"]
pattern: '/api/auth/logout'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['logout']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['logout']>>>
}
}
'auth.me': {
methods: ["GET","HEAD"]
pattern: '/api/auth/me'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['me']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/auth_controller').default['me']>>>
}
}
'overview.index': {
methods: ["GET","HEAD"]
pattern: '/api/overview'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/overview_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/overview_controller').default['index']>>>
}
}
'metrics.live': {
methods: ["GET","HEAD"]
pattern: '/api/metrics/live'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/metrics_controller').default['live']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/metrics_controller').default['live']>>>
}
}
'metrics.history': {
methods: ["GET","HEAD"]
pattern: '/api/metrics/history'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/metrics_controller').default['history']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/metrics_controller').default['history']>>>
}
}
'containers.index': {
methods: ["GET","HEAD"]
pattern: '/api/containers'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['index']>>>
}
}
'containers.show': {
methods: ["GET","HEAD"]
pattern: '/api/containers/:id'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['show']>>>
}
}
'containers.logs': {
methods: ["GET","HEAD"]
pattern: '/api/containers/:id/logs'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['logs']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['logs']>>>
}
}
'compose.show': {
methods: ["GET","HEAD"]
pattern: '/api/containers/:id/compose'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['show']>>>
}
}
'compose.update': {
methods: ["PUT"]
pattern: '/api/containers/:id/compose'
types: {
body: ExtractBody<InferInput<(typeof import('#validators/compose').updateComposeValidator)>>
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: ExtractQuery<InferInput<(typeof import('#validators/compose').updateComposeValidator)>>
response: ExtractResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['update']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['update']>>> | { status: 422; response: { errors: SimpleError[] } }
}
}
'compose.version': {
methods: ["GET","HEAD"]
pattern: '/api/containers/:id/compose/versions/:versionId'
types: {
body: {}
paramsTuple: [ParamValue, ParamValue]
params: { id: ParamValue; versionId: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['version']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/compose_controller').default['version']>>>
}
}
'containers.action': {
methods: ["POST"]
pattern: '/api/containers/:id/:action'
types: {
body: {}
paramsTuple: [ParamValue, ParamValue]
params: { id: ParamValue; action: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['action']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/containers_controller').default['action']>>>
}
}
'sites.index': {
methods: ["GET","HEAD"]
pattern: '/api/sites'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['index']>>>
}
}
'sites.check': {
methods: ["POST"]
pattern: '/api/sites/check'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['check']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['check']>>>
}
}
'sites.show': {
methods: ["GET","HEAD"]
pattern: '/api/sites/:id'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/sites_controller').default['show']>>>
}
}
'projects.index': {
methods: ["GET","HEAD"]
pattern: '/api/projects'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['index']>>>
}
}
'projects.store': {
methods: ["POST"]
pattern: '/api/projects'
types: {
body: ExtractBody<InferInput<(typeof import('#validators/project').createProjectValidator)>>
paramsTuple: []
params: {}
query: ExtractQuery<InferInput<(typeof import('#validators/project').createProjectValidator)>>
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['store']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['store']>>> | { status: 422; response: { errors: SimpleError[] } }
}
}
'projects.options': {
methods: ["GET","HEAD"]
pattern: '/api/projects/options'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['options']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['options']>>>
}
}
'projects.show': {
methods: ["GET","HEAD"]
pattern: '/api/projects/:category/:name'
types: {
body: {}
paramsTuple: [ParamValue, ParamValue]
params: { category: ParamValue; name: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['show']>>>
}
}
'projects.fetch': {
methods: ["POST"]
pattern: '/api/projects/:category/:name/fetch'
types: {
body: {}
paramsTuple: [ParamValue, ParamValue]
params: { category: ParamValue; name: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['fetch']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['fetch']>>>
}
}
'projects.action': {
methods: ["POST"]
pattern: '/api/projects/:category/:name/actions/:action'
types: {
body: ExtractBody<InferInput<(typeof import('#validators/project').projectActionValidator)>>
paramsTuple: [ParamValue, ParamValue, ParamValue]
params: { category: ParamValue; name: ParamValue; action: ParamValue }
query: ExtractQuery<InferInput<(typeof import('#validators/project').projectActionValidator)>>
response: ExtractResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['action']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/projects_controller').default['action']>>> | { status: 422; response: { errors: SimpleError[] } }
}
}
'caddy.show': {
methods: ["GET","HEAD"]
pattern: '/api/caddy'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['show']>>>
}
}
'caddy.update': {
methods: ["PUT"]
pattern: '/api/caddy'
types: {
body: ExtractBody<InferInput<(typeof import('#validators/caddy').updateCaddyfileValidator)>>
paramsTuple: []
params: {}
query: ExtractQuery<InferInput<(typeof import('#validators/caddy').updateCaddyfileValidator)>>
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['update']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['update']>>> | { status: 422; response: { errors: SimpleError[] } }
}
}
'caddy.reload': {
methods: ["POST"]
pattern: '/api/caddy/reload'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['reload']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['reload']>>>
}
}
'caddy.versions': {
methods: ["GET","HEAD"]
pattern: '/api/caddy/versions'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['versions']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['versions']>>>
}
}
'caddy.version': {
methods: ["GET","HEAD"]
pattern: '/api/caddy/versions/:id'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['version']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['version']>>>
}
}
'caddy.restore': {
methods: ["POST"]
pattern: '/api/caddy/versions/:id/restore'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['restore']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/caddy_controller').default['restore']>>>
}
}
'backups.index': {
methods: ["GET","HEAD"]
pattern: '/api/backups'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['index']>>>
}
}
'backups.store': {
methods: ["POST"]
pattern: '/api/backups'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['store']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['store']>>>
}
}
'backups.download': {
methods: ["GET","HEAD"]
pattern: '/api/backups/:name'
types: {
body: {}
paramsTuple: [ParamValue]
params: { name: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['download']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['download']>>>
}
}
'backups.destroy': {
methods: ["DELETE"]
pattern: '/api/backups/:name'
types: {
body: {}
paramsTuple: [ParamValue]
params: { name: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['destroy']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/backups_controller').default['destroy']>>>
}
}
'jobs.stream': {
methods: ["GET","HEAD"]
pattern: '/api/jobs/:id/stream'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/jobs_controller').default['stream']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/jobs_controller').default['stream']>>>
}
}
'audit.index': {
methods: ["GET","HEAD"]
pattern: '/api/audit'
types: {
body: {}
paramsTuple: []
params: {}
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/audit_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/audit_controller').default['index']>>>
}
}
'audit.show': {
methods: ["GET","HEAD"]
pattern: '/api/audit/:id'
types: {
body: {}
paramsTuple: [ParamValue]
params: { id: ParamValue }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/audit_controller').default['show']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/audit_controller').default['show']>>>
}
}
'spa.index': {
methods: ["GET","HEAD"]
pattern: '/*'
types: {
body: {}
paramsTuple: [ParamValue]
params: { '*': ParamValue[] }
query: {}
response: ExtractResponse<Awaited<ReturnType<import('#controllers/spa_controller').default['index']>>>
errorResponse: ExtractErrorResponse<Awaited<ReturnType<import('#controllers/spa_controller').default['index']>>>
}
}
}