- controllers/trigger_controller.go: полная реализация, HTTP->Ingress+Service, Cron->CronJob
- internal/config: добавлены IngressHost, APIToken
- internal/api/router.go: gorilla/mux роутер /v1/namespaces/{ns}/...
- internal/api/handler/: functions, triggers, invocations, base handler с slog
- internal/api/middleware/: auth (Bearer token) + logging (slog)
- main.go: запуск operator + HTTP сервера параллельно
- go.sum: добавлен gorilla/mux v1.8.1
27 lines
1.4 KiB
SQL
27 lines
1.4 KiB
SQL
-- Миграция: 001 — начальная схема
|
|
-- Создано: 2026-03-07
|
|
-- Таблица invocations хранит логи вызовов функций.
|
|
-- Состояние самих функций хранится в k8s CRD (etcd), не здесь.
|
|
|
|
CREATE TABLE IF NOT EXISTS invocations (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
-- function_name и namespace — ссылка на CRD Function в k8s
|
|
function_name VARCHAR(255) NOT NULL,
|
|
namespace VARCHAR(255) NOT NULL,
|
|
-- статус выполнения: success, error, timeout
|
|
status VARCHAR(50) NOT NULL,
|
|
-- время выполнения в миллисекундах
|
|
duration_ms INTEGER NOT NULL DEFAULT 0,
|
|
-- HTTP статус ответа функции (для HTTP триггеров)
|
|
http_status INTEGER,
|
|
-- вывод функции (stdout/stderr), ограничен 64KB
|
|
logs TEXT,
|
|
-- тип триггера: http, cron
|
|
trigger_type VARCHAR(50) NOT NULL DEFAULT 'http',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Индексы для быстрой выборки логов по функции
|
|
CREATE INDEX IF NOT EXISTS idx_invocations_function ON invocations (function_name, namespace);
|
|
CREATE INDEX IF NOT EXISTS idx_invocations_created_at ON invocations (created_at DESC);
|