“Naeel”
55758b6280
admin-console: add DeepSeek handoff instructions
2026-05-25 10:04:23 +04:00
“Naeel”
34a8068da5
restructure: console→client-console, add admin-console skeleton, move docs to doc/
2026-05-25 09:48:55 +04:00
“Naeel”
3e36ff13a8
docs: fix outdated references — versions, S3/PVC, triggers status
2026-05-21 09:24:42 +04:00
“Naeel”
53ef35968e
fix: billing.NoopStore in clone test + repo analysis doc
2026-05-21 09:14:31 +04:00
“Naeel”
ab128515ab
docs: README — storagesvc S3/PV deploy instructions + comparison table
2026-05-20 09:09:11 +04:00
“Naeel”
296b538d20
bench: S3 results 2026-05-20 PASS=20/20 + PV vs S3 comparison
...
RUNID=9251970 (S3 ngcloud msk-1):
- PASS=20/20 — все тесты прошли
- Upload: мелкие файлы медленнее (+1-3s), крупные — сопоставимо
- Cold start: S3 ≈ PV (python быстрее, ruby small медленнее, PHP одинаково)
- Hot avg: практически идентично на обоих бэкендах
ruby/medium cold=80568ms — аномалия воспроизвелась 4-й раз подряд на S3.
Подтверждено: не связана с типом хранилища, это поведение poolmgr.
Вердикт: S3 == PV по производительности. S3 предпочтительнее.
2026-05-20 08:45:40 +04:00
“Naeel”
7539680ae0
chore: switch storagesvc to S3 backend (ngcloud msk-1)
...
- helm/fission-values.yaml: storageType=s3, bucket=sless-functions, endPoint=https://s3.msk-1.ngcloud.ru
- helm/fission-values-pv.yaml: сохранён PV конфиг для быстрого возврата
- helm/fission-s3-secret.yaml: credentials (в .gitignore, не в репо)
- .gitignore: добавлен helm/fission-s3-secret.yaml
Возврат на PV: kubectl delete deploy executor router storagesvc -n fission
helm upgrade fission ... -f helm/fission-values-pv.yaml --no-hooks
2026-05-20 08:39:51 +04:00
“Naeel”
005b4786c0
docs: bench PV results 2026-05-20 PASS=20/20; misc updates
2026-05-20 08:30:26 +04:00
“Naeel”
a2e1723e33
bench: fix PHP arrow functions (fn()=> requires 7.4+), PASS=20/20 on PV
...
- Replace fn()=> with traditional function() syntax in php_medium and php_large
- 8 arrow function occurrences fixed across processWords/statsArr/caesar/lookupOps/nested array_map
- Added diag_bugs.sh: diagnostic script for PHP pool exhaustion + ruby/medium cold anomaly
- bench_full.sh RUNID=9250986: PASS=20 FAIL=0 (was PASS=18 FAIL=2)
- ruby/medium cold=81549ms anomaly confirmed reproducible (3rd time), not a FAIL
- Added doc/report-2026-05-20-bench-php-analysis.md
2026-05-20 08:27:32 +04:00
“Naeel”
dd7e42caf4
fix: ExpiryReaper orphan race min-age 2m + Ruby handler format (v1.3.96)
2026-05-20 07:37:04 +04:00
“Naeel”
fe8870af71
fix: nodejs wrapper передаёт require в new Function (v1.3.95)
2026-05-19 16:48:19 +04:00
“Naeel”
27dbe3bccb
docs: add FISSION_IMAGES.md — image tags and rebuild instructions
2026-05-19 11:33:58 +04:00
“Naeel”
090a7afdd7
fix: nodejs entrypoint back to 'main' — node-env splits on '.' giving funcname='js'
2026-05-19 11:05:07 +04:00
“Naeel”
042b1e5046
fix: PHP env PSR-7 format — getBody()->write() instead of return array
2026-05-19 10:41:46 +04:00
“Naeel”
72e5d50cd0
fix: ExpiryReaper orphan race + nodejs ESM entrypoint (v1.3.93)
2026-05-19 10:30:28 +04:00
“Naeel”
fd075a7f80
test: add test_heavy.sh — big code, CPU, mem, archive, rapid, parallel, slow
2026-05-19 10:16:09 +04:00
“Naeel”
78f1a2cfc4
doc: progress 2026-05-19 PV migration + fetcher v1.23.0, PASS=8 FAIL=0
2026-05-19 09:59:41 +04:00
“Naeel”
2aadae339e
chore: rename storage-check → storage-bench-s3-archived (S3 отключён)
2026-05-19 09:50:33 +04:00
“Naeel”
3eb4f5669b
feat: PV storage backend + fix fetcher image v1.23.0
...
- helm/fission-values.yaml: storagesvc на vcd-disk-ext4 PV 2Gi
fetcher image: naeel/fetcher:v1.23.0 (собран из fission-src/cmd/fetcher)
- scripts/migrate_s3_to_pv.py: скрипт перелива S3→storagesvc (no-op: 0 пакетов с s3://)
- doc/report-2026-05-19-pv-migration-bugs.md: баги helm upgrade, FETCHER_IMAGE, field manager
2026-05-19 09:46:57 +04:00
“Naeel”
865d33a0e1
feat: storage benchmark — local-path PV, vcd-disk-ext4 PV, S3 (10 iter each)
2026-05-19 07:28:45 +04:00
“Naeel”
1d81ca34e1
doc: план и разъяснения по устранению 401 'key is of invalid type' (root cause, порядок исправления, volume-mount secret, отказ от fallback на SA token)
2026-05-18 19:51:59 +04:00
“Naeel”
8374254020
chore: gitignore scripts/test_layer1.sh
2026-05-15 14:16:30 +04:00
“Naeel”
ae913f7ad6
chore: gitignore token.txt and test-results/
2026-05-15 14:16:03 +04:00
“Naeel”
68296d8fe0
fix: update paths from ~/IoT and ~/fission to ~/fission-console in .github docs
2026-05-15 14:14:45 +04:00
“Naeel”
949b0b52d6
fix(console): v1.3.92 — EnsureEnvironment обновляет образ если устарел
...
Вместо костыля (kubectl patch вручную) — системный фикс:
EnsureEnvironment теперь проверяет spec.runtime.image у существующего env
и обновляет его если отличается от LangEnvMap[lang].Image.
Это автоматически мигрирует все namespace-ы при следующем создании функции.
2026-05-13 10:55:47 +04:00
“Naeel”
6a8c3a27e2
fix(console): v1.3.91 — deps сохраняются в аннотации и восстанавливаются при edit
...
- handleCreateFunction: deps → аннотация fission-console/deps
- handleUpdateFunctionCode: deps → аннотация fission-console/deps (или удаление если пусто)
- GET /functions/:name: возвращает deps из аннотации
- openEdit: заполняет e-deps.value = fn.deps (вместо пустого поля)
2026-05-13 10:43:59 +04:00
“Naeel”
75532d8d8e
fix(console): v1.3.90 — deps textarea compact, linter внешние импорты, python env v1.1
...
- deps textarea: rows=3, resize:none, overflow-y:auto
- aiCheck (Python): после линтера проверяет внешние импорты
если deps поле пустое — предупреждение с именами модулей
- Python env: v1.0 → v1.1 (содержит boto3+requests+psycopg2-binary)
2026-05-13 10:37:14 +04:00
“Naeel”
10b2b4a8e0
feat(console): поле зависимостей для функций из кода (deps → zip)
...
- UI: textarea 'Зависимости' в формах создания и редактирования
- плейсхолдер меняется по языку (requirements.txt / package.json / Gemfile / composer.json)
- Python: если deps заполнен → zip(main.py + requirements.txt), иначе raw bytes
- PHP: если deps → zip(main.php + composer.json)
- Ruby: если deps → zip(handler.rb + Gemfile)
- Node.js: пока без изменений (сложная структура package.json)
- runtime: BuildPythonZip, BuildScriptZipWithDeps, buildZipTwo
- model: Deps string в CreateFunctionRequest и UpdateCodeRequest
- v1.3.89
2026-05-13 10:22:45 +04:00
“Naeel”
17f1c5d46f
feat: стартовая точка для weather pipeline без Terraform (ветка feat/weather-pipeline-no-tf)
2026-05-13 07:44:38 +04:00
“Naeel”
4ef480d1f8
chore: ignore *.tfvars (contains secrets)
2026-05-12 11:22:44 +04:00
“Naeel”
df16b40a9d
feat: weather-demo MQ pipeline + sqs-consumer v1.2 with JWT auto-refresh
...
- sqs-consumer: new Go binary v1.2 with tokenManager (auto-login /auth/login, 5min cache, retry on 401)
- console: add MQ/KW triggers UI (mqtriggers.go, kwtriggers.go, mq.js)
- console: update python-env image to v1.1 (boto3+psycopg2+requests)
- weather-demo: fix consumer/main.py (Flask Request.get_json instead of dict access)
- weather-demo: fix fetcher/main.py (boto3 SQS publish, 5 cities)
- weather-demo: update main.tf (python-env v1.1, deploy_type=literal)
- python-env: add psycopg2-binary to Dockerfile (v1.1)
- terraform provider: client auth fix
2026-05-12 11:19:30 +04:00
“Naeel”
fbd565651a
feat(provider): add fission_mq_trigger, fission_cron_trigger, fission_iot_device + weather-demo example
2026-05-11 09:37:20 +04:00
“Naeel”
fe8f6a871b
feat: plan.md + minor fixes (stats, server, copilot rules)
2026-05-11 07:46:14 +04:00
“Naeel”
c9f97e2f4c
feat: v1.3.87 — Grafana Organizations per namespace (StatsProvider + public dashboards + UI button)
2026-05-10 18:47:21 +04:00
“Naeel”
4b8c776357
feat: grafana subpath /grafana on fission.kube5s.ru (temp, easy migration to grafana.kube5s.ru)
2026-05-10 09:12:21 +04:00
“Naeel”
aaa1b9a82d
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”
11c90bac9e
docs: progress.md — v1.3.78-v1.3.85, env vars, clone, tests
2026-05-10 07:49:00 +04:00
“Naeel”
28bbc58293
test: function_clone — 21 unit tests (validation, clone, rollback, download, triggers)
2026-05-10 07:47:04 +04:00
“Naeel”
1ea0c5a9de
fix: clone — poll until function visible in list, up to 5 attempts (v1.3.85)
2026-05-09 20:53:17 +04:00
“Naeel”
f729bbfd85
feat: help + llm prompts — env vars and clone sections (v1.3.84)
2026-05-09 20:47:09 +04:00
“Naeel”
47caff5c7e
fix: clone — delay 800ms before reloadAll to avoid race with k8s list (v1.3.83)
2026-05-09 20:44:05 +04:00
“Naeel”
26728aadbe
fix: clone — apiFetch → requestJSON (v1.3.82)
2026-05-09 20:35:26 +04:00
“Naeel”
0a4f64143c
fix: clone — loadFunctions → reloadAll (v1.3.81)
2026-05-09 20:31:54 +04:00
“Naeel”
d8b36631ee
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”
921c0b5c16
fix: remove LLM topic restriction, bump v1.3.79
2026-05-09 08:58:13 +04:00
“Naeel”
bba5904c5f
fix: remove s.log (no logger field in Server)
2026-05-09 08:48:01 +04:00
“Naeel”
924375b083
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”
7887d4597d
fix: env vars через newdeploy+podspec — попадают в pod OS env для всех языков
2026-05-09 07:49:36 +04:00
“Naeel”
089994256c
fix: валидация имён env vars — только [A-Za-z_][A-Za-z0-9_]*
2026-05-09 07:22:35 +04:00
“Naeel”
ee97eebbff
fix: ошибка валидации env vars — выводить внутри модалки
2026-05-09 07:06:56 +04:00