Микросервис обучения портала: тесты, курсы, видео-уроки, доступы, public-ссылки для кандидатов с email-валидацией. В этой итерации: - Skeleton (config, migrate, main, health) по паттерну tasks/candidates - Migration 001_init: 10 таблиц (tests/questions/answers/attempts/ attempt_answers + courses/lessons/lesson_progress + access_grants + public_tokens) с подробными комментариями why - Tests: полный CRUD + вопросы/ответы; non-owner'у is_correct и explanation скрываются в выдаче - Заглушки 501 для attempts / courses / lessons / video-stream / access / public-tokens — следующие итерации - k8s: namespace, configmap, secrets, postgres, deployment с HPA, service с portal-discovery annotations - Dockerfile, Makefile, .gitignore См. README.md для полного списка отложенного и инструкций запуска. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
27 lines
956 B
YAML
27 lines
956 B
YAML
# SECRETS — в открытом виде намеренно, репо приватное в gitea.estateliga.work.
|
||
# INTERNAL_API_KEY — общий ключ с порталом (X-Internal-Key, constant-time
|
||
# сравнение). MINIO_ACCESS_KEY/SECRET_KEY — учётка с правом на bucket
|
||
# learning-videos (создать через MinIO console, scope = read/write).
|
||
apiVersion: v1
|
||
kind: Secret
|
||
metadata:
|
||
name: learning-secrets
|
||
namespace: learning
|
||
type: Opaque
|
||
stringData:
|
||
PORTAL_INTERNAL_API_KEY: "36fe89ed40c01fdc54d3cf4e3fcacc8751dc456a4a1acd394e9fed48257c5734"
|
||
INTERNAL_API_KEY: "36fe89ed40c01fdc54d3cf4e3fcacc8751dc456a4a1acd394e9fed48257c5734"
|
||
MINIO_ACCESS_KEY: "learning-svc"
|
||
MINIO_SECRET_KEY: "REPLACE_AFTER_FIRST_DEPLOY"
|
||
---
|
||
apiVersion: v1
|
||
kind: Secret
|
||
metadata:
|
||
name: postgres-secret
|
||
namespace: learning
|
||
type: Opaque
|
||
stringData:
|
||
POSTGRES_USER: learning
|
||
POSTGRES_PASSWORD: learning
|
||
POSTGRES_DB: learning
|