restructure: console→client-console, add admin-console skeleton, move docs to doc/
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
// Package model содержит общие типы данных (request/response структуры,
|
||||
// конфигурации языков), которые используются в нескольких пакетах.
|
||||
// Вынесено отдельно чтобы избежать циклических зависимостей между пакетами.
|
||||
package model
|
||||
|
||||
// CreateFunctionRequest — тело POST /console/api/functions.
|
||||
// TTL пустой → функция живёт вечно; "1d", "24h" — протухнет через указанное время.
|
||||
// Deps — содержимое файла зависимостей: requirements.txt (python), package.json deps (nodejs),
|
||||
// Gemfile (ruby), composer.json (php). Если задан — код упаковывается в zip вместе с deps-файлом.
|
||||
type CreateFunctionRequest struct {
|
||||
Name string `json:"name"`
|
||||
Language string `json:"language"`
|
||||
Environment string `json:"environment"`
|
||||
Code string `json:"code"`
|
||||
Deps string `json:"deps"` // содержимое файла зависимостей (опционально)
|
||||
Entrypoint string `json:"entrypoint"`
|
||||
Route string `json:"route"`
|
||||
Methods []string `json:"methods"`
|
||||
Timeout int64 `json:"timeout"`
|
||||
TTL string `json:"ttl"` // e.g. "24h", "7d" — пустое = функция не протухает
|
||||
}
|
||||
|
||||
// CreateTimeTriggerRequest — тело POST /console/api/timetriggers.
|
||||
type CreateTimeTriggerRequest struct {
|
||||
Name string `json:"name"`
|
||||
FunctionName string `json:"functionName"`
|
||||
Cron string `json:"cron"`
|
||||
Method string `json:"method"`
|
||||
SubPath string `json:"subpath"`
|
||||
}
|
||||
|
||||
// CreateMQTriggerRequest — тело POST /console/api/mqtriggers.
|
||||
// Архитектура: Console создаёт K8s Deployment (sqs-consumer) + Secret с credentials
|
||||
// в namespace пользователя. sqs-consumer поллит shared-sqs → вызывает Fission-функцию.
|
||||
type CreateMQTriggerRequest struct {
|
||||
Name string `json:"name"`
|
||||
FunctionName string `json:"functionName"`
|
||||
Queue string `json:"queue"` // имя очереди в SQS
|
||||
SqsEndpoint string `json:"sqsEndpoint"` // URL SQS сервиса (default: internal shared-sqs)
|
||||
AccessKey string `json:"accessKey"` // SQS access key тенанта
|
||||
SecretKey string `json:"secretKey"` // SQS secret key тенанта
|
||||
}
|
||||
|
||||
// CreateKWTriggerRequest — тело POST /console/api/kwtriggers.
|
||||
// Документация полей: kubectl get crd kuberneteswatchtriggers.fission.io -o json
|
||||
type CreateKWTriggerRequest struct {
|
||||
Name string `json:"name"`
|
||||
FunctionName string `json:"functionName"`
|
||||
ResourceType string `json:"resourceType"` // Pod, Service, Deployment и т.д.
|
||||
Namespace string `json:"namespace"` // пустое = namespace пользователя
|
||||
LabelSelector string `json:"labelSelector"` // "app=foo" или "" для всех
|
||||
}
|
||||
|
||||
// UpdateCodeRequest — тело PUT /console/api/functions/:name/code.
|
||||
type UpdateCodeRequest struct {
|
||||
Code string `json:"code"`
|
||||
Deps string `json:"deps"` // содержимое файла зависимостей (опционально)
|
||||
Timeout int64 `json:"timeout"`
|
||||
}
|
||||
|
||||
// LangEnvDef описывает Docker-образы для конкретного языка.
|
||||
// BuilderImage заполнен только для языков которым нужна компиляция (Go).
|
||||
// Version: версия среды Fission (по умолчанию 3).
|
||||
type LangEnvDef struct {
|
||||
Image string
|
||||
BuilderImage string
|
||||
Version int // 0 → по умолчанию 3
|
||||
}
|
||||
|
||||
// LangEnvMap сопоставляет идентификатор языка (string) с описанием среды выполнения.
|
||||
// Ключ используется в createFunctionRequest.Language и как суффикс имени Environment.
|
||||
var LangEnvMap = map[string]LangEnvDef{
|
||||
"python": {Image: "naeel/fission-python-env:v1.1"},
|
||||
"nodejs": {Image: "ghcr.io/fission/node-env"},
|
||||
"go": {Image: "ghcr.io/fission/go-env", BuilderImage: "naeel/go-builder-fast:v1"},
|
||||
"php": {Image: "ghcr.io/fission/php-env"},
|
||||
"ruby": {Image: "ghcr.io/fission/ruby-env"},
|
||||
}
|
||||
Reference in New Issue
Block a user