feat: JWT auth in operator + hello-node example updated

- operator: auth middleware теперь валидирует JWT (sub+exp), не статический токен
- operator: ensureNamespace идемпотентен при race condition (IsAlreadyExists)
- operator: NewRouter убран параметр apiToken — больше не нужен
- examples/hello-node: prod.token + nubes_endpoint + версия провайдера 0.1.12
- протестировано: namespace sless-cdd874dfa31ba6ca создан автоматически
This commit is contained in:
“Naeel” 2026-03-11 07:51:06 +04:00
parent 4cda072155
commit 0aec6e286a

View File

@ -1,20 +1,24 @@
# 2026-03-08 # 2026-03-11
# main.tf провайдеры. # main.tf провайдеры.
# Функции и их код определены в отдельных файлах: # Функции и их код определены в отдельных файлах:
# http.tf HTTP-триггер (code/handler-http.js) # http.tf HTTP-триггер (code/handler-http.js)
# job.tf одноразовый запуск (code/handler-job.js) # job.tf одноразовый запуск (code/handler-job.js)
#
# nubes_endpoint провайдер делает GET запрос для валидации токена.
# Namespace вычисляется автоматически из JWT sub: sless-{sha256[:8]}
terraform { terraform {
required_providers { required_providers {
sless = { sless = {
source = "terra.k8c.ru/naeel/sless" source = "terra.k8c.ru/naeel/sless"
version = "~> 0.1.11" version = "~> 0.1.12"
} }
} }
} }
provider "sless" { provider "sless" {
endpoint = "https://sless-api.kube5s.ru" endpoint = "https://sless-api.kube5s.ru"
token = "dev-token-change-me" token = file("${path.module}/../../secrets/prod.token")
nubes_endpoint = "https://deck-api.ngcloud.ru/api/v1"
} }