Skip to content

FractalOps MCP E2E 시나리오 (실측)

이 문서는 가정이 아니라 실제 사용자 흐름을 MCP(Playwright)로 실행한 실측 결과를 누적한다. placeholder URL(example.com/org/net/local)은 런타임에서 비활성 엔드포인트로 간주되어 솔루션 노출 대상에서 제외된다.

flowchart TD
  subgraph PM["Planner (PM)"]
    pm1["project_create"]
  end
  subgraph DEV["Developer"]
    d1["developer_dashboard"] --> d2["developer_registry_token"]
    d2 --> d3["developer_daytona_launch (302)"]
  end
  subgraph DES["Designer"]
    de1["designer_penpot_launch (302)"]
  end
  Edge["Pomerium edge<br/>auth.yamon.io"]
  pm1 --> Edge
  d1 --> Edge
  de1 --> Edge
  Edge --> Portal["Portal (portal.yamon.io)"]
  d3 --> Daytona["Daytona sandbox"]
  de1 --> Penpot["Penpot dashboard"]
  d2 --> Nexus["Nexus registry<br/>(FO-E2E-005 차단)"]

라이브 계정 시나리오 실행 원칙

Section titled “라이브 계정 시나리오 실행 원칙”

CT136 LXC 전용 persona probe는 retired. 라이브 persona 검증은 Portal/Playwright E2E와 Studio/Temporal evidence artifact로 남긴다. 새 검증 코드는 LXC 내부 전용 스크립트가 아니라 프로젝트별 test lane 또는 Playwright proof로 소유한다.

  • 실행 일시: 2026-03-08 (KST)
  • 실행 도구: Playwright MCP
  • 실행 계정: staff@example.com
  • 목적: 스크립트 기반 가정이 아니라, 실제 사용자 흐름 기준 정상 동작 보장/차단점 식별
  • 주의: example.com/org/net/local 계열 placeholder URL은 런타임에서 비활성 엔드포인트로 간주되어 솔루션 노출 대상에서 제외됨.
ID시나리오기대 결과실제 결과상태증거
FO-E2E-001Portal 대시보드 진입https://portal.example.com/ 진입 시 세션/온보딩/피드 렌더링정상 렌더링 확인PASSoutput/playwright/e2e-20260308/portal-dashboard.png
FO-E2E-002Portal 즐겨찾기 토글/필터repo 즐겨찾기 토글 후 즐겨찾기만 필터 동작pm-e2e-0307 즐겨찾기 추가 + 필터 시 표시 2개PASSoutput/playwright/e2e-20260308/portal-favorites-filter.png
FO-E2E-003Portal 프로젝트 피드 조회/에서 프로젝트/피드 카드 노출대시보드와 프로젝트 피드 렌더링 확인PASSoutput/playwright/e2e-20260308/portal-dashboard.png
FO-E2E-004Portal → Daytona SandboxPortal launch에서 Daytona 클릭 시 sandbox/IDE 진입Daytona sandbox launch와 supported IDE/CLI handoff 화면 진입 확인PASSoutput/playwright/e2e-20260308/portal-launch-daytona-success.png, output/playwright/e2e-20260308/daytona-ide-success.png
FO-E2E-005Portal → Nexus LaunchPortal launch 경유 시 Nexus 정상 진입{"error":"Pomerium authentication failed"} + 401FAILoutput/playwright/e2e-20260308/portal-launch-nexus-auth-failed.png
FO-E2E-006Portal → Penpot LaunchPortal launch 경유 시 Penpot 정상 진입Penpot dashboard 진입 확인(팀 생성/프로젝트 화면)PASSoutput/playwright/e2e-20260308/portal-launch-penpot-success.png
FO-E2E-007Portal 비선형 UX(유저/그룹)Next Actions + Journey persona 필터 + Group jump 연동portal.example.com에서 실측 동작 확인PASSoutput/playwright/e2e-20260308-ux-linear/portal-filter-pm-after-deploy.png
FO-E2E-008다중 사용자 시뮬레이션(Edge Claim)사용자별 주체 파싱/위젯 분리Loopback MCP 호출로 user-a, user-b, user-c 각각 subject_key 분리 확인PASSMCP run-code 결과 로그(2026-03-08)
FO-E2E-009keytest 실제 MS 로그인계정 전환 후 keytest 실로그인Microsoft 응답: Your account has been lockedFAILMCP snapshot (Microsoft sign-in, 2026-03-08)

실패 시나리오 차단 원인 (현재)

Section titled “실패 시나리오 차단 원인 (현재)”
sequenceDiagram
  autonumber
  participant U as 직원
  participant P as Portal launch
  participant E as Pomerium edge
  participant N as Nexus (nexus.yamon.io)

  U->>P: Nexus launch 클릭
  P->>E: launch route -> nexus.yamon.io
  E--xN: forwarded_jwt_assertion 전달 실패
  N-->>U: 401 {"error":"Pomerium authentication failed"}
  • 원인: launch 라우트 이후 Nexus 진입 시 Pomerium 인증 문맥 전달 실패.
  • 영향: Portal에서 레지스트리 진입이 차단되어 패키지 publish/install 흐름 단절.
  • 계약 근거: Nexus identity-contract는 identity_assertion_mode: forwarded_jwt_assertion 이며, edge가 검증한 JWT를 Nexus로 전달해야 한다. 이 전달 문맥이 끊긴 것이 차단점이다.
  • 원인: 애플리케이션 로직 문제가 아니라 Entra 계정 잠금 상태.
  • 영향: keytest 기준 실서비스 E2E(계정 전환/신규 사용자 온보딩) 재현 불가.

아래 3개가 모두 PASS일 때 “직원 기본 개발 흐름 정상”으로 판정한다.

flowchart LR
  G003["FO-E2E-003<br/>Portal 프로젝트 피드"] --> AND{모두 PASS?}
  G004["FO-E2E-004<br/>Portal -> Daytona sandbox"] --> AND
  G005["FO-E2E-005<br/>Nexus Launch"] --> AND
  AND -- 예 --> OK["직원 기본 개발 흐름 정상"]
  AND -- 아니오 --> FAIL["보장 실패"]
  1. FO-E2E-003 (Portal 프로젝트 피드)
  2. FO-E2E-004 (Portal → Daytona sandbox 진입)
  3. FO-E2E-005 (Nexus Launch)

현재 판정: 보장 실패 (Nexus Launch 미해결 1건).

  • 유저/그룹 흐름 끊김 완화를 위해 Next Actions를 상단에 추가하고 온보딩/여정/시나리오 기반 우선순위 액션을 자동 계산.
  • Journey Board에 persona 필터(all/developer/pm/team_lead/super_admin) 추가.
  • Group Context Map에서 cluster jump 시 persona 필터가 자동 연동되어 비선형 탐색이 가능.
  • PortalLaunchService에서 FRACTALOPS_PORTAL_IDP_PROFILE_ENFORCE_SOLUTIONS 대상(Penpot 등) launch 전에 IDP profile(email/firstName/lastName) 자동 보정.
  • Penpot access sync는 최신 native RPC 경로 /api/main/methods/*FRACTALOPS_PENPOT_API_URL / FRACTALOPS_PENPOT_API_TOKEN 계약을 사용한다.