auth
무료Authentication and authorization patterns for Rossoctl services
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Record narrated demo videos of the Rossoctl platform using Playwright and OpenAI TTS
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Record demo videos of the Rossoctl platform with AI-generated voiceover narration.
playwright-demos worktree: .worktrees/playwright-demos/ffmpeg and ffprobe installedOPENAI_API_KEY in .env for narration (optional -- video-only without it)cd .worktrees/playwright-demos
List available tests:
./local_experiments/run-playwright-demo.sh --cluster-suffix <SUFFIX>
Record video only:
./local_experiments/run-playwright-demo.sh --cluster-suffix <SUFFIX> --test <name>
Record video + narration:
source .env
./local_experiments/run-playwright-demo.sh --cluster-suffix <SUFFIX> --test <name>
test:playwright -- verify markStep segments,
assertions, selectors, and narration alignment--no-narration firstsource .env then runplaywright-demo:debug if neededStep 1: Fast run -> measure video slot timing per markStep()
Step 2: Generate TTS per [section], inject waitForTimeout() to match
Step 3: Record narration-synced video -> composite voiceover
Before recording, verify every test meets these criteria:
markStep() call is OUTSIDE conditional blocksmarkStep() names match [section] in narration file 1:1Tests MUST use expect() assertions, NOT silent .catch(() => {}):
// REQUIRED - fails if navigation broken
await expect(page).toHaveURL(/\/agents/, { timeout: 10000 });
// REQUIRED - fails if content missing
await expect(element).toBeVisible({ timeout: 5000 });
expect(count).toBeGreaterThan(0);
// REQUIRED - after login
expect(page.url()).not.toContain('/realms/');
Keep .catch() ONLY for truly optional elements (VERIFY_PROFILE, hover effects).
Run the test without narration first to confirm it passes:
./local_experiments/run-playwright-demo.sh --cluster-suffix <SUFFIX> --test <name> --no-narration
If it fails, fix selectors by reading UI source code. Use playwright-demo:debug.
demos/
├── 01-demos/full-platform-walkthrough/
├── 02-ui-pages/{home-overview,agent-detail,...}/
├── 03-workflows/{agent-chat,multi-namespace,...}/
├── 04-observability/{mlflow-traces,kiali-mesh,...}/
└── 05-advanced/{keycloak-admin,env-vars,...}/
Each demo directory contains all artifacts:
demos/02-ui-pages/home-overview/
├── home-overview.spec.ts # Test spec (copy)
├── home-overview.txt # Narration text (copy)
├── home-overview-timestamps.json # Step timings
├── audio_segments/ # Per-section TTS (cached by MD5)
│ ├── intro.mp3 + intro.hash
│ ├── login.mp3 + login.hash
│ └── ...
├── home-overview_YYYY-MM-DD.webm # Timestamped raw video
├── home-overview_YYYY-MM-DD_voiceover.mp4
├── home-overview_latest.webm # Latest (overwritten)
└── home-overview_latest_voiceover.mp4
Audio segments are cached by MD5 hash -- only changed narration text triggers TTS regeneration.
demo-map.jsone2e/<name>.spec.ts with markStep(), expect(), demoClick()narrations/<name>.txt with [section] markersSee playwright-research for analyzing UI code to write selectors.
./local_experiments/sync-to-gdrive.sh
Shows setup instructions for scoped service account. Then:
./local_experiments/sync-to-gdrive.sh --sync --latest-only
| Problem | Fix |
|---|---|
| Validation IDLE gaps | Add narration text to fill the gap |
| Narration overlaps | --sync pipeline adds extra waits automatically |
| Missing markStep timestamp | Move markStep() outside conditional blocks |
| Auth lost after navigation | Use SPA sidebar clicks, not page.goto() |
| Overlapping audio | Fix markStep() calls, check timestamps file |
| Video in wrong directory | Add test to demo-map.json |
playwright-demos | <cluster> | <test> | <phase>playwright-demo:debug -- Debug failing Playwright stepsplaywright-research -- Analyze UI code, detect changes, plan videoshypershift:cluster -- Create/manage test clustersk8s:health -- Verify platform health before recording아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Authentication and authorization patterns for Rossoctl services
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create confidential OAuth2 clients in Keycloak for server-to-service authentication
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Configure OpenTelemetry Collector with OAuth2 authentication for trace export
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
CI pipeline monitoring, status checks, and PR validation workflows
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Monitor running CI jobs, wait for completion, create tasks for results
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.