Commit Graph
100 Commits
Author SHA1 Message Date
Repinoid 6b3dcc826d chore: update ignore rules 2026-10-27 14:08:57 +03:00
“Naeel” df0afa9894 feat: plan.md + minor fixes (stats, server, copilot rules) 2026-05-11 07:46:14 +04:00
“Naeel” f95e1e9c2f feat: v1.3.87 — Grafana Organizations per namespace (StatsProvider + public dashboards + UI button) 2026-05-10 18:47:21 +04:00
“Naeel” 01cd6f3309 feat: grafana subpath /grafana on fission.kube5s.ru (temp, easy migration to grafana.kube5s.ru) 2026-05-10 09:12:21 +04:00
“Naeel” 423c44322d feat: billing layer v1.3.86 — PostgreSQL statistics
- internal/billing: Store interface + pgStore (pgx/v5 pool) + NoopStore
- factory.go: NewStore() from BILLING_DSN env var (NoopStore fallback)
- Server.billing: injected into Config, initialized in main
- handleInvokeFunction: record invocation (TriggerConsole)
- invokeInternalFunction: record invocation (TriggerHTTP)
- handleCreateFunction: record event_type=create
- handleCloneFunction: record event_type=clone
- handleDeleteFunction: record event_type=delete
- table: invocations (namespace, function_name, trigger_type, duration_ms, status_code...)
- BILLING_DSN added to console.yaml
- pgx/v5 added to go.mod/go.sum
2026-05-10 08:26:42 +04:00
“Naeel” eae7dee1ef docs: progress.md — v1.3.78-v1.3.85, env vars, clone, tests 2026-05-10 07:49:00 +04:00
“Naeel” d874b8d411 test: function_clone — 21 unit tests (validation, clone, rollback, download, triggers) 2026-05-10 07:47:04 +04:00
“Naeel” 086d9165aa fix: clone — poll until function visible in list, up to 5 attempts (v1.3.85) 2026-05-09 20:53:17 +04:00
“Naeel” a145b7eee6 feat: help + llm prompts — env vars and clone sections (v1.3.84) 2026-05-09 20:47:09 +04:00
“Naeel” 4048a6edd1 fix: clone — delay 800ms before reloadAll to avoid race with k8s list (v1.3.83) 2026-05-09 20:44:05 +04:00
“Naeel” 83949dc88a fix: clone — apiFetch → requestJSON (v1.3.82) 2026-05-09 20:35:26 +04:00
“Naeel” 43a5041924 fix: clone — loadFunctions → reloadAll (v1.3.81) 2026-05-09 20:31:54 +04:00
“Naeel” 7cc7767418 feat: clone function — POST /functions/:name/clone (v1.3.80)
- Backend: function_clone.go — copies archive from storagesvc, creates
  new Package/Function/HTTPTrigger preserving all settings (env vars,
  timeout, entrypoint, executor type, podspec)
- Backend: route handlers.go — /functions/:name/clone POST
- Frontend: 'Клон' button in edit modal, inline name input form
- Frontend: JS toggleCloneArea/submitClone with validation
- Pre-fills clone name as '<original>-copy', validates format
2026-05-09 20:22:51 +04:00
“Naeel” e4589762dc fix: remove LLM topic restriction, bump v1.3.79 2026-05-09 08:58:13 +04:00
“Naeel” 0344b2584e fix: remove s.log (no logger field in Server) 2026-05-09 08:48:01 +04:00
“Naeel” efe19821eb feat: patch Deployment env vars directly via k8s API (v1.3.78)
Fission newdeploy executor does NOT apply fn.Spec.PodSpec when building
Deployment spec - it only uses env.Spec.Runtime.Container and podSpecPatch.

Fix: after updating Function CRD, also directly patch the newdeploy
Deployment via Kubernetes API using StrategicMergePatch, searching by
labels functionName/functionNamespace/executorType=newdeploy.

This ensures env vars immediately appear in the container and survive
pod scaling events (scale to 0 / scale back to 1).
2026-05-09 08:38:59 +04:00
“Naeel” f05b40c20a fix: env vars через newdeploy+podspec — попадают в pod OS env для всех языков 2026-05-09 07:49:36 +04:00
“Naeel” fa6f5694c2 fix: валидация имён env vars — только [A-Za-z_][A-Za-z0-9_]* 2026-05-09 07:22:35 +04:00
“Naeel” d79bb4a0f5 fix: ошибка валидации env vars — выводить внутри модалки 2026-05-09 07:06:56 +04:00
“Naeel” b8ba3f3d08 fix: валидация дублей ключей env vars + подсветка красным 2026-05-09 07:02:10 +04:00
“Naeel” 0b5657a6e8 fix: env vars хранятся в аннотации fission-console/env-vars (не в spec.runtime)
spec.runtime.container.env срезается CRD-схемой Fission.
Хранение перенесено в аннотацию fission-console/env-vars (JSON-массив).
Версия v1.3.73
2026-05-09 06:57:29 +04:00
“Naeel” bf470a4408 feat: переменные окружения функций (env vars в CRD)
- Backend: handleGetFunctionEnvVars / handlePutFunctionEnvVars в function_crud.go
- API: GET/PUT /functions/:name/envvars
- handleGetFunction теперь возвращает env_vars в ответе
- Frontend: блок env vars в edit modal (key=value + [×] + [+ Добавить])
- TF-функции показывают env vars в режиме read-only
- Документация: doc/descriptions/function-envvars-flow.md
- Версия v1.3.72
2026-05-09 06:50:52 +04:00
“Naeel” 5976def36e bump: версия v1.3.71 (исправлен статус Building) 2026-05-09 06:38:54 +04:00
“Naeel” 3495bde91b fix: статус Building только для активной сборки (не для none) 2026-05-09 06:36:01 +04:00
“Naeel” 8dde74de8a feat: функции со статусом (Ready/Cold/Building/Error)
- Backend: новый файл status.go с функцией определения статуса пода и Package buildStatus
- API: GET /functions теперь возвращает функции с полем status в аннотациях
- Frontend: добавлена колонка Status в таблицу функций с цветными кругами
- Легенда статусов выше таблицы
- Версия v1.3.70
2026-05-09 06:29:46 +04:00
“Naeel” 43bb36bcbe fix: v1.3.69 — Info modal curl copy: use data-attr to fix broken onclick with quotes 2026-05-08 14:09:07 +04:00
“Naeel” 69690d805a feat: v1.3.68 — Info modal: copy buttons only on name/pkg/route, add curl copy field 2026-05-08 14:01:55 +04:00
“Naeel” cad4e24491 feat: v1.3.67 — UI table refactor: remove Env/Pkg columns, add Type icon + Info modal 2026-05-08 09:19:01 +04:00
“Naeel” 5c06f15b46 release: v1.3.66 — refactor deploy 2026-05-08 09:03:52 +04:00
“Naeel” d7792e7033 chore: misc local changes (server.go, croned.py) 2026-05-08 09:00:58 +04:00
“Naeel” cd31553d31 refactor: split handlers.go into focused modules
handlers.go (267 lines) — routing, constants, handleAuth, utils
storagesvc.go — S3 upload/delete via storagesvc
function_code.go — create/update function from inline code
function_archive.go — create/update function from zip archive
function_crud.go — GET, DELETE, timeout update, pod logs
function_invoke.go — invoke via router, /fn route gateway, cron gateway

No logic changes. go build OK.
2026-05-08 09:00:25 +04:00
“Naeel” b75aae4a02 doc: TODO — биллинг, MQ-триггеры, метрики, прочий функционал 2026-05-07 21:48:30 +04:00
“Naeel” 3c43e070d3 feat: полный user-friendly промпт для LLM-ассистента — UI, кнопки, таблица, cron, примеры (v1.3.65) 2026-05-07 21:33:02 +04:00
“Naeel” f2e5e3eac9 fix: chat system prompt — user-friendly, без внутренней кухни (v1.3.64) 2026-05-07 21:26:36 +04:00
“Naeel” 190581d712 fix: logs — брать имя контейнера из pod.Spec.Containers[0] (v1.3.63) 2026-05-07 21:04:23 +04:00
“Naeel” 7e7c47022d fix: logs — убрать хардкод user-container, взять первый контейнер пода (v1.3.62) 2026-05-07 20:58:23 +04:00
“Naeel” 1e00f93ade feat: logs modal + ESC close + /functions/:name/logs endpoint (v1.3.61) 2026-05-07 20:51:02 +04:00
“Naeel” 6d24ff6f51 rules: запрет самодеятельных изменений рабочего кода — комментарии + правила 2026-05-07 20:39:24 +04:00
“Naeel” 03841bf304 v1.3.60: debug logging in extractPackageSourceCode, fix edit modal (no mode toggle) 2026-05-07 20:28:57 +04:00
“Naeel” b9b04397b4 v1.3.59: add logging to extractPackageSourceCode for debug 2026-05-07 20:14:12 +04:00
“Naeel” 585d63e4c6 v1.3.59: restore edit modal mode toggle — code/archive buttons 2026-05-07 20:08:10 +04:00
“Naeel” 60232998f2 fix: правильный ingress /cron → metrics-collector, чистый console v1.3.58, запрет костылей 2026-05-07 12:06:27 +04:00
“Naeel” 2c3063c972 doc: описание изменений fission-src vs официальный Fission (multi-tenant) 2026-05-04 15:39:53 +04:00
“Naeel” c0fe738146 feat: helm chart для fission-console (без хардкодов, параметризован) 2026-05-04 12:17:09 +04:00
“Naeel” ad7b335ece chore: sync все локальные изменения (auto, 2026-05-04) 2026-05-04 11:55:49 +04:00
“Naeel” 9bb1f9a0ba test: полный CLI-совместимость кастомного fission-bundle (2026-05-04) [auto-report] 2026-05-04 11:53:19 +04:00
“Naeel” db0da9f8c6 doc: add full function lifecycle description (S3, lint, env, runtime) 2026-05-04 11:13:27 +04:00
“Naeel” 30b0ef0133 v1.3.56: use naeel/fission-python-env:v1.0 for new Python environments 2026-05-04 11:06:33 +04:00
“Naeel” 5a8dddcd30 v1.3.55: validate zip magic bytes on upload (UI + backend) 2026-05-04 10:57:32 +04:00
“Naeel” b908277915 fix: форматирование lint_archive.go 2026-05-04 09:30:21 +04:00
“Naeel” e5c78a59e5 v1.3.54: лintер проверяет соответствие языка файлам в архиве
Если выбран Node.js но в архиве .py — сразу ошибка.
Фронтенд передаёт выбранный язык (ca-lang / e-lang-hidden) в запрос лintера.
2026-05-04 09:28:21 +04:00
“Naeel” afc4368d79 v1.3.53: лintер проверяет entrypoint — файл и функция должны существовать в архиве
Entrypoint формат module.function: лintер ищет module.py в архиве
и проверяет что def function(...) определена внутри.
Если нет — сразу ошибка, не нужно ждать таймаута вызова.
Фронтенд передаёт entrypoint из поля e-entry / ca-entry.
2026-05-04 09:21:31 +04:00
“Naeel” 279bd74bdc test: aa1 def main(event, context) из архива — 200 OK
naeel/fission-python-env:v1.0 с патчем inspect.signature работает.
Любая сигнатура main() поддерживается без изменений кода пользователя:
- def main() -> main()
- def main(event, context) -> main(request, {})
- def main(request) -> main(request)
2026-05-04 09:13:48 +04:00
“Naeel” 34d016eee5 fix: console-python-env не поддерживает def main(event, context) — TypeError при вызове архивных функций
Проблема: ghcr.io/fission/python-env v3 вызывает userfunc() без аргументов.
Пользователи пишут def main(event, context) (AWS Lambda стиль) — получают:
TypeError: main() missing 2 required positional arguments: 'event' and 'context'

Это НЕ ошибка пользователя. Fission просто не реализует Lambda-конвенцию.
demo.py: временно исправлен на event=None, context=None.

План: собрать naeel/console-python-env с патчем inspect.signature
чтобы любая сигнатура main() работала автоматически.
Подробнее: doc/plans/console-python-env-fix-2026-05-04.md
2026-05-04 09:03:51 +04:00
“Naeel” 05d3151ffb v1.3.52: fix archive name display — remove package name fallback 2026-05-04 08:27:27 +04:00
“Naeel” f8e2ec3f0e v1.3.51: remove invoke_url from response, unlock entrypoint field in edit modal 2026-05-04 08:22:12 +04:00
“Naeel” 7cf2c82ce2 v1.3.50: fix archive fn — entrypoint update in edit, store/show archive filename 2026-05-04 08:14:19 +04:00
“Naeel” 62b25044fb v1.3.49: edit modal — remove mode toggle, show archive name, timeout-only save; add PUT /functions/:name/timeout 2026-05-04 07:03:43 +04:00
“Naeel” 113c8f0952 v1.3.48: remove internal invoke_url from invoke modal output 2026-05-04 06:59:25 +04:00
“Naeel” cfab33a173 v1.3.47: fix InvokeStrategy in archive handler, modal error display, draggable modals 2026-05-04 06:54:18 +04:00
“Naeel” 40fc2febc9 v1.3.46: separate create modals — code (cc-) and archive (ca-) as independent modules 2026-05-04 06:46:45 +04:00
“Naeel” 2ab4d48b14 chore: add all untracked files from VM — scripts, test-results, LLM batch, docs 2026-05-04 06:22:16 +04:00
“Naeel” 7b5e50d24b fix: restore NSReconciler, archive upload create/edit, fix version label both places; v1.3.45
- tenant.go: restore StartNSReconciler (sync FISSION_RESOURCE_NAMESPACES every 30s)
- main.go: call nsm.StartNSReconciler on startup
- handlers.go: handleCreateFunctionFromArchive (multipart), handleUpdateFunctionArchive (PUT /archive)
  source-type annotation, source_type in GET response
- functions.js: submitCreate/submitEdit archive mode, openEdit uses source_type
- index.html: version label updated in BOTH places (line 103 and 403) to v1.3.45
- console.yaml: image v1.3.45
- doc: archive-and-edit-modal-flow.md
2026-05-04 06:16:11 +04:00
“Naeel” 4d0a7db3fc feat: explain-archive LLM endpoint + UI button v1.3.40 2026-05-03 21:33:18 +04:00
“Naeel” 75fa4b3372 fix: lint-archive error handling, test: big zip binary, v1.3.39 2026-05-03 21:24:44 +04:00
“Naeel” 444e2b581d feat: lint-archive endpoint, UI result inline v1.3.38 2026-05-03 21:08:32 +04:00
“Naeel” 43987f7c27 wip: локальный коммит всех изменений, включая новые тесты, артефакты и правки UI/infra 2026-05-03 20:21:42 +04:00
“Naeel” 23df34521d tests: fix isolation t-t- bug, restore SUB=livetest for invoke/update/stress (router ns) 2026-05-03 20:17:13 +04:00
“Naeel” 80156f94c1 tests: тестовые ресурсы с префиксом test-/t-, ns fission-test-*, guard в cleanup 2026-05-03 17:59:12 +04:00
“Naeel” 21fceeaf64 demo: рабочая версия функции с requests, загрузка из архива работает 2026-05-03 17:41:52 +04:00
“Naeel” aa9ef9fb17 ui: progressive table render + load timer, v1.3.34 2026-05-03 17:34:07 +04:00
“Naeel” a9defd07f6 deploy: v1.3.33 — fix version label, new tag to force image pull 2026-05-03 17:24:18 +04:00
“Naeel” 0fac923a06 ui: fix version label v1.3.27 → v1.3.32 2026-05-03 17:18:37 +04:00
“Naeel” ebd89599c8 deploy: bump fission-console to v1.3.32 2026-05-03 17:16:21 +04:00
“Naeel” 7079158bf6 ui: archive upload mode + lint stub, fix stress warmup output, add descriptions 2026-05-03 17:14:25 +04:00
“Naeel” a3bd05540b merge: взять нашу версию run_all.sh с авто-tee 2026-05-03 16:39:49 +04:00
“Naeel” 30ce76afee tests: добавить все тест-скрипты локально 2026-05-03 16:39:35 +04:00
“Naeel” 0c9862a85b tests: run_all.sh авто-tee в test-results/, правила логирования 2026-05-03 16:38:05 +04:00
“Naeel” 10b06dfc7e fix(tests): X-Test-Sub → X-Auth-Token во всех тест-скриптах, cleanup для test59.sh 2026-05-03 13:50:32 +04:00
“Naeel” 6448bb9b1d feat: remove test mode (X-Test-Sub), all functions stored in S3 via storagesvc
- Remove FISSION_TEST_MODE and X-Test-Sub bypass from authMiddleware
- Remove testMode field from Server/Config structs
- Remove TestAuthenticator branch from main.go
- Add uploadToStoragesvc/buildDeploySpec: all function code uploaded to S3
- Add deleteFromStoragesvc: archive deleted from S3 on function delete
- Add FISSION_STORAGESVC_URL env to main.go and deploy/console.yaml
- image: naeel/fission-console:v1.3.31
2026-05-03 13:37:12 +04:00
“Naeel” 271d4f8578 move scripts, update UI, add s3cfg-ngcloud 2026-05-03 08:27:38 +04:00
“Naeel” 595f01aaac move scripts to scripts/ folder 2026-05-03 08:26:30 +04:00
“Naeel” 3eadced98a feat(auth): demo-логин ≥6 симв, MultiAuthenticator, UUID v5, v1.3.26 2026-05-02 19:45:10 +04:00
“Naeel” d90e26bc2f fix(ui): email влево, версия вправо у логотипа, v1.3.25 2026-05-02 19:24:28 +04:00
“Naeel” 154cd713ee feat(auth): auth layer decoupling, версия v1.3.24 в navbar и Help 2026-05-02 19:18:34 +04:00
“Naeel” 70058fbfc0 deploy: v1.3.23 — imagePullPolicy Always, email fix, версия в Help 2026-05-02 18:05:40 +04:00
“Naeel” bc85b4a423 rules: ВСЕГДА увеличивать тег перед docker build 2026-05-02 17:52:36 +04:00
“Naeel” 75712ad831 fix: resolve merge conflict in copilot-instructions.md 2026-05-02 17:47:29 +04:00
“Naeel” 7d7bb894a1 restore: .github/ files from commit d41cd011 2026-05-02 17:46:28 +04:00
“Naeel” 7a949a773d fix(ui): email без синего фона; версия v1.3.21 в подвале Help 2026-05-02 17:41:54 +04:00
“Naeel” d2b5ef56c2 refactor(ui): step11 - extract app.js (reloadAll + fn table render); fix: reloadAll was accidentally deleted in step10 2026-05-02 17:36:49 +04:00
“Naeel” a45f937ad1 refactor(ui): step10 - extract init.js (pollNSStatus, initLog, formatSeconds, explainDelay, startTimedStatus, renderInitStages и др.) 2026-05-02 17:33:43 +04:00
“Naeel” 0d42353845 refactor(ui): step9 - extract ai.js (llmGeneratedWarning, addLLMWarning, aiCheck, aiGenerate, aiExplain, askAssistant, toggleAssistant, showGenPrompt) 2026-05-02 17:30:33 +04:00
“Naeel” f1dad469a1 refactor(ui): step8 - extract functions.js (parseMethods, parseTimeout, onLangChange, openCreate/Edit/Invoke CRUD, removeFn) 2026-05-02 17:27:20 +04:00
“Naeel” 9f4cba728a refactor(ui): step7 - extract modals.js (openHelp, closeHelp, openInvoke, closeInvoke, submitInvoke) 2026-05-02 17:24:35 +04:00
“Naeel” ddbae81397 refactor(ui): step6 - extract triggers.js (httpTriggerByFn, timeTriggerByFn, toggleScheduleFields, schedulePayload, syncScheduleForFunction) 2026-05-02 17:22:27 +04:00
“Naeel” 97ad528aa8 refactor(ui): step5 - extract auth.js (doLogin, doLogout, checkAuth, showLoginOverlay, jwtEmail, setUserAvatar) 2026-05-02 17:20:31 +04:00
“Naeel” 7a9f7c7453 refactor(ui): step4 - extract ui.js (setText, showStatus, clearStatus, h, formatTimestamp, timestampCell) 2026-05-02 17:18:25 +04:00
“Naeel” be751ea2c5 refactor(ui): step3 - extract api.js (authHeaders, getJSON, requestJSON) 2026-05-02 17:16:32 +04:00
“Naeel” a7d5c23816 refactor(ui): step1+2 - extract CSS to styles.css, LANG_TEMPLATES to config.js 2026-05-02 17:14:01 +04:00