auth
FreeAuthentication and authorization patterns for Rossoctl services
The English summary is being prepared. Showing the original description.
Debug failing Playwright demo steps - selectors, auth, timing, and alignment issues
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
Troubleshoot and fix failing steps in Playwright demo walkthrough tests.
[demo] log lines — identify which step failedlocal_experiments/test-results/<test-dir>/test-failed-1.pngpython3 local_experiments/validate-alignment.py
Symptom: element not visible or timeout waiting for selector
Screenshot the page to see actual DOM:
cd rossoctl/ui-v2 && NODE_PATH=node_modules node -e "
const { chromium } = require('@playwright/test');
(async () => {
const b = await chromium.launch();
const p = await b.newPage({ ignoreHTTPSErrors: true });
await p.goto('TARGET_URL', { waitUntil: 'networkidle', timeout: 30000 });
await p.screenshot({ path: '/tmp/rossoctl/debug.png', fullPage: true });
const els = await p.evaluate(() =>
Array.from(document.querySelectorAll('a, button, [role=tab]')).map(e => ({
tag: e.tagName, text: e.textContent?.trim()?.substring(0, 50), href: e.href
}))
);
console.log(JSON.stringify(els, null, 2));
await b.close();
})();
"
Symptom: Validation shows Section [name] has no markStep() timestamp
Fix: The markStep() call is inside a conditional block that didn't execute. Move it outside:
// WRONG - inside conditional
if (await element.isVisible()) {
markStep('section_name');
await element.click();
}
// RIGHT - outside conditional
markStep('section_name');
if (await element.isVisible()) {
await element.click();
}
Symptom: Page redirects to Keycloak after clicking sidebar link
Fix: Use SPA sidebar clicks (client-side routing), not page.goto():
// WRONG - full reload loses Keycloak tokens
await page.goto(`${UI_URL}/agents`);
// RIGHT - SPA navigation preserves tokens
const link = page.locator('nav a').filter({ hasText: /^Agents$/ });
await demoClick(link.first(), 'Agents sidebar');
Symptom: MLflow shows login page or "User not allowed"
MLflow uses 2-stage auth:
/oidc/ui/auth — click SSO buttonAfter login, navigate to ${MLFLOW_URL}/#/experiments (hash routing).
Symptom: OpenShift login page shown
Kiali uses OpenShift OAuth — needs kubeadmin credentials (separate from Keycloak). Script auto-discovers from <kubeconfig-dir>/kubeadmin-password.
Symptom: Multiple voices playing simultaneously
Cause: Missing timestamps → audio segments placed at wrong positions
Fix: Ensure ALL markStep() calls fire unconditionally. Run validation:
python3 local_experiments/validate-alignment.py
Check for NO TIMESTAMP errors. Fix those first.
On invocation:
playwright-demos | <cluster> | ad-hoc | debug | | <issue description>playwright-demo — Main demo recording workflowrossoctl:ui-debug — Debug Rossoctl UI issuesk8s:health — Check platform healthNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Authentication and authorization patterns for Rossoctl services
The English summary is being prepared. Showing the original description.
Create confidential OAuth2 clients in Keycloak for server-to-service authentication
The English summary is being prepared. Showing the original description.
Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication
The English summary is being prepared. Showing the original description.
Configure OpenTelemetry Collector with OAuth2 authentication for trace export
The English summary is being prepared. Showing the original description.
CI pipeline monitoring, status checks, and PR validation workflows
The English summary is being prepared. Showing the original description.
Monitor running CI jobs, wait for completion, create tasks for results
The English summary is being prepared. Showing the original description.