현재 작업 상태 저장
This commit is contained in:
parent
07cc67761e
commit
6bd91b0d5e
674 changed files with 8726 additions and 298 deletions
|
|
@ -11,6 +11,7 @@ AUTH_ALLOWED_EMAIL_DOMAINS=["hs.ac.kr","twentyoz.kr"]
|
|||
AUTH_TEACHER_EMAILS=[]
|
||||
AUTH_ADMIN_EMAILS=[]
|
||||
AUTH_DEV_LOGIN_ENABLED=false
|
||||
AUTH_DEV_LOGIN_EXTRA_ORIGINS=[]
|
||||
DEFAULT_AFFILIATION=
|
||||
AUTO_SEED_PERSONAS=false
|
||||
ALLOW_SEED_PERSONA_FALLBACK=false
|
||||
|
|
@ -19,10 +20,13 @@ OAUTH_GOOGLE_CLIENT_ID=
|
|||
OAUTH_GOOGLE_CLIENT_SECRET=
|
||||
OAUTH_REDIRECT_URI=https://api-vignette.chanpaca.net/auth/callback
|
||||
FRONTEND_BASE_URL=https://vignette.chanpaca.net
|
||||
CORS_ORIGINS=["https://vignette.chanpaca.net","https://vignette-b1q.pages.dev","http://localhost:5170","http://localhost:5171","http://localhost:5172","http://localhost:5173","http://localhost:5174","http://localhost:5175","http://localhost:5176","http://localhost:5177","http://localhost:5178","http://localhost:5179","http://localhost:5180","http://127.0.0.1:5170","http://127.0.0.1:5171","http://127.0.0.1:5172","http://127.0.0.1:5173","http://127.0.0.1:5174","http://127.0.0.1:5175","http://127.0.0.1:5176","http://127.0.0.1:5177","http://127.0.0.1:5178","http://127.0.0.1:5179","http://127.0.0.1:5180"]
|
||||
FRONTEND_ORIGIN_MAP={"api-vignette.chanpaca.net":"https://vignette.chanpaca.net","api-vnet.18ka.net":"https://vnet.18ka.net"}
|
||||
CORS_ORIGINS=["https://vignette.chanpaca.net","https://vnet.18ka.net","https://vignette-b1q.pages.dev","http://localhost:5170","http://localhost:5171","http://localhost:5172","http://localhost:5173","http://localhost:5174","http://localhost:5175","http://localhost:5176","http://localhost:5177","http://localhost:5178","http://localhost:5179","http://localhost:5180","http://127.0.0.1:5170","http://127.0.0.1:5171","http://127.0.0.1:5172","http://127.0.0.1:5173","http://127.0.0.1:5174","http://127.0.0.1:5175","http://127.0.0.1:5176","http://127.0.0.1:5177","http://127.0.0.1:5178","http://127.0.0.1:5179","http://127.0.0.1:5180"]
|
||||
# For local-only compose development, set ENVIRONMENT=dev and add http://localhost:5173 to CORS_ORIGINS.
|
||||
OPENAI_API_KEY=
|
||||
OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
VIGNETTE_VOICE_POC_SAMPLE_TTS=false
|
||||
VIGNETTE_VOICE_POC_SAMPLE_TTS_DIR=
|
||||
ANTHROPIC_API_KEY=
|
||||
# 엔진(이식성): 네 PC=claude_cli, 클라우드=claude_api
|
||||
ENGINE_MODE=claude_cli
|
||||
|
|
|
|||
|
|
@ -212,6 +212,68 @@ CREATE POLICY p_feedback_select ON app.feedback_scores FOR SELECT USING (
|
|||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_feedback_insert ON app.feedback_scores;
|
||||
CREATE POLICY p_feedback_insert ON app.feedback_scores FOR INSERT WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_feedback_update ON app.feedback_scores;
|
||||
CREATE POLICY p_feedback_update ON app.feedback_scores FOR UPDATE USING (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
) WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
|
||||
-- ── normalized turn evaluation tables: 원시 평가는 evaluator/admin만 직접 접근 ──
|
||||
ALTER TABLE app.turn_technique ENABLE ROW LEVEL SECURITY;
|
||||
DROP POLICY IF EXISTS p_turn_technique_select ON app.turn_technique;
|
||||
CREATE POLICY p_turn_technique_select ON app.turn_technique FOR SELECT USING (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_turn_technique_insert ON app.turn_technique;
|
||||
CREATE POLICY p_turn_technique_insert ON app.turn_technique FOR INSERT WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
|
||||
ALTER TABLE app.turn_client_state ENABLE ROW LEVEL SECURITY;
|
||||
DROP POLICY IF EXISTS p_turn_client_state_select ON app.turn_client_state;
|
||||
CREATE POLICY p_turn_client_state_select ON app.turn_client_state FOR SELECT USING (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_turn_client_state_insert ON app.turn_client_state;
|
||||
CREATE POLICY p_turn_client_state_insert ON app.turn_client_state FOR INSERT WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
|
||||
ALTER TABLE app.supervisor_comment ENABLE ROW LEVEL SECURITY;
|
||||
DROP POLICY IF EXISTS p_supervisor_comment_select ON app.supervisor_comment;
|
||||
CREATE POLICY p_supervisor_comment_select ON app.supervisor_comment FOR SELECT USING (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_supervisor_comment_insert ON app.supervisor_comment;
|
||||
CREATE POLICY p_supervisor_comment_insert ON app.supervisor_comment FOR INSERT WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
|
||||
ALTER TABLE app.alternative_utterance ENABLE ROW LEVEL SECURITY;
|
||||
DROP POLICY IF EXISTS p_alternative_utterance_select ON app.alternative_utterance;
|
||||
CREATE POLICY p_alternative_utterance_select ON app.alternative_utterance FOR SELECT USING (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
DROP POLICY IF EXISTS p_alternative_utterance_insert ON app.alternative_utterance;
|
||||
CREATE POLICY p_alternative_utterance_insert ON app.alternative_utterance FOR INSERT WITH CHECK (
|
||||
app.is_ai_context()
|
||||
OR app.current_role_name() IN ('admin','instructor')
|
||||
);
|
||||
|
||||
-- ── case_profile / pinned_fact: 학습자=본인 케이스만(cross-trainee 누수 차단 T4) ──
|
||||
ALTER TABLE app.case_profile ENABLE ROW LEVEL SECURITY;
|
||||
|
|
|
|||
|
|
@ -44,12 +44,14 @@ services:
|
|||
AUTH_TEACHER_EMAILS: '${AUTH_TEACHER_EMAILS:-[]}'
|
||||
AUTH_ADMIN_EMAILS: '${AUTH_ADMIN_EMAILS:-[]}'
|
||||
AUTH_DEV_LOGIN_ENABLED: ${AUTH_DEV_LOGIN_ENABLED:-false}
|
||||
AUTH_DEV_LOGIN_EXTRA_ORIGINS: '${AUTH_DEV_LOGIN_EXTRA_ORIGINS:-[]}'
|
||||
DEFAULT_AFFILIATION: ${DEFAULT_AFFILIATION:-}
|
||||
AUTO_SEED_PERSONAS: ${AUTO_SEED_PERSONAS:-false}
|
||||
ALLOW_SEED_PERSONA_FALLBACK: ${ALLOW_SEED_PERSONA_FALLBACK:-false}
|
||||
EVALUATOR_GOLDEN_FEWSHOT_ENABLED: ${EVALUATOR_GOLDEN_FEWSHOT_ENABLED:-false}
|
||||
FRONTEND_BASE_URL: ${FRONTEND_BASE_URL:-https://vignette.chanpaca.net}
|
||||
CORS_ORIGINS: '${CORS_ORIGINS:-["https://vignette.chanpaca.net","https://vignette-b1q.pages.dev"]}'
|
||||
FRONTEND_ORIGIN_MAP: '${FRONTEND_ORIGIN_MAP:-{"api-vignette.chanpaca.net":"https://vignette.chanpaca.net","api-vnet.18ka.net":"https://vnet.18ka.net"}}'
|
||||
CORS_ORIGINS: '${CORS_ORIGINS:-["https://vignette.chanpaca.net","https://vnet.18ka.net","https://vignette-b1q.pages.dev"]}'
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
healthcheck:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue