프로젝트

일반

사용자정보

Actions

이슈 #441

진행중
HP HP

Desktop SDK 스모크 테스트 클라이언트 (alphea-rpc/cmd/sdktest) — GoTrue + NodeService 흐름

이슈 #441: Desktop SDK 스모크 테스트 클라이언트 (alphea-rpc/cmd/sdktest) — GoTrue + NodeService 흐름

Henry Park이(가) 약 7시간 전에 추가함.

상태:
해결
우선순위:
보통
담당자:
목표버전:
시작일:
2026/05/13
완료일:
진척도:

0%

추정시간:

설명

배경

GoTrue + NodeService challenge-signature + ConnectNode bidi 의 새 인증/통신 흐름을 Android 앱 재빌드 없이 빠르게 검증할 수 있는 데스크톱 (macOS/Linux) CLI 가 필요했다. sdk/auth.go 의 Authenticate* 가 제거된 RPC 를 호출하는 stale 상태라, 새 흐름의 reference implementation 이 별도로 존재해야 모바일 SDK 재작성(#439) 의 청사진이 된다.

작업 내용

  • alphea-rpc/cmd/sdktest/main.go — Connect RPC + GoTrue REST + secp256k1 서명을 직접 호출하는 CLI
  • alphea-rpc/cmd/sdktest/README.md — 사용법
  • alphea-rpc/Makefile — make sdktest ARGS="..." 타겟 추가

지원 명령

keygen          노드 secp256k1 키페어 생성/저장
signup          GoTrue 사용자 생성 → user JWT
login           GoTrue 로그인
refresh         user JWT 갱신
node-register   NodeChallenge + RegisterNode (user JWT bearer)
connect         ConnectNode bidi 스트림 (sdk.NodeAgent)
vfs-read/write/list   VFS smoke (Phase 1 후 dFS 명령으로 교체 예정)
state           저장된 상태 조회

State 는 ~/.alphea/sdktest.json 에 저장.

흐름

keygen → signup/login → node-register → connect
                              ↓
                         (user JWT bearer)
                         NodeChallenge + sign + RegisterNode
                              ↓
                         node JWT (typ:"node", sub:node_id)
                              ↓
                         ConnectNode bidi

DoD

  • make sdktest ARGS="..." 로 모든 명령 동작
  • GoTrue user JWT 로 NodeService.RegisterNode 호출 성공 (owner_user_id 매핑)
  • ConnectNode bidi 스트림 유지 (JobAssigned / BalanceUpdate 이벤트 수신)
  • 후속: Phase 0.7 wallet-login / Phase 1 dfs-* 명령 추가

관련 이슈

  • #419 — Supabase Auth 적용, 앱 로그인 테스트 (메인)
  • #439 — [Go backport] Mobile SDK GoTrue 인증 전환 — sdktest 가 SDK 재작성의 reference impl

HP Henry Park이(가) 6달 전에 변경 Actions #1

  • 상태을(를) 신규에서 해결(으)로 변경되었습니다.

sdktest CLI 완성

commit:server|94d7be4

결과물

  • alphea-rpc/cmd/sdktest/main.go — Connect RPC + GoTrue REST + secp256k1 서명 CLI
  • alphea-rpc/cmd/sdktest/README.md — 사용법
  • Makefile 에 make sdktest ARGS="..." 타겟 추가

지원 명령

keygen / signup / login / refresh / node-register / connect / vfs-read·write·list / state. State 는 ~/.alphea/sdktest.json 에 저장.

DoD

  • make sdktest ARGS="..." 로 모든 명령 동작
  • GoTrue user JWT 로 NodeService.RegisterNode 호출 성공 (owner_user_id 매핑)
  • ConnectNode bidi 스트림 유지 (JobAssigned / BalanceUpdate)
  • 후속: Phase 0.7 wallet-login, Phase 1 dfs-* 명령 추가 (별도 이슈)

비고

Mobile SDK GoTrue backport (#439 / dceda06) 가 push 됐으므로 sdktest 와 SDK 실제 구현 사이의 정렬 검증 필요.

HP Henry Park이(가) 6달 전에 변경 Actions #2

후속 명령 트래킹 이동

DoD 의 마지막 [ ] 항목 ("Phase 0.7 wallet-login / Phase 1 dfs-* 명령 추가") 을 이제 다음 이슈에서 추적:

  • #443 — Phase 0.7 MVP — wallet-login 명령 추가 포함
  • (향후) Phase 1 dFS PoC 이슈 — dfs-* 명령 교체

이 이슈 자체는 sdktest 1차 버전 완성 이므로 해결 상태 유지.

HP Henry Park이(가) 6달 전에 변경 Actions #3

sdktest dev loop 구성

commit:server|a2aaa74 에서 sdktest 개발 루프를 운영 토폴로지와 동일하게 구성하는 Makefile 타겟 5개 추가:

  • make dev-up — 전체 compose (postgres + gotrue + redis + server) 운영 동등
  • make dev-deps — deps 만 (빠른 서버 개발 루프용)
  • make dev-server — 호스트에서 go run ./cmd/server (PORT=3001)
  • make dev-down
  • make dev-logs — server / gotrue / postgres follow

이로 sdktest 구현·검증 루프가 일관되고, Phase 0.7 (#443) 의 WalletChallenge/Verify 같은 RPC 도입 때 다음 패턴으로 테스트 가능:

make dev-deps          # postgres + gotrue + redis
make dev-server        # 서버 코드 수정 후 즉시 반영
make sdktest ARGS="..."  # 검증

HP Henry Park이(가) 6달 전에 변경 Actions #4

dev compose override 추가

commit:server|52156c7

로컬 dev 루프에서 SigNoz 스택이 없는 박스에서도 make dev-up 이 성공하도록 docker-compose.local.yml 추가:

  • server.OTEL_EXPORTER_OTLP_ENDPOINT 빈 값 (OTel OFF graceful)
  • server.networks 를 [default] 만으로 replace
  • signoz-net 을 external:false 로 만들어 compose 가 ad-hoc 로컬 네트워크 생성

Makefile dev-* 타겟이 새 COMPOSE_DEV 변수로 -f docker-compose.yml -f docker-compose.local.yml 을 항상 묶음. 운영 compose 는 그대로 두고 로컬만 덼어쓰는 패턴.

이제 sdktest 루프가 SigNoz 설치 없는 개발 매시도 탄탄하게 도는 상태.

HP Henry Park이(가) 6달 전에 변경 Actions #5

SDK smoke harness 추가

commit:server|6c63ffc

sdktest 를 회귀 테스트 엔진으로 쓸 수 있게 완성:

  • make smoke (dev-up + smoke-check) / make smoke-check 신규 타겟
  • 자동 시퀀스: /monitor + /monitor/test-client HTTP 200 → signup → state → keygen → node-register → connect (3s)
  • 임시 state 파일은 trap 으로 자동 정리
  • COMPOSE_DEV 가 --env-file .env.sdktest 사용으로 dev env 격리
  • .env.sdktest.example 신규 — dev 친화 기본값
  • TEST_CLIENT_CHECKLIST.md 신규 — Phase 별 회귀 체크리스트. 새 SDK/RPC 추가 시 같은 PR 에서 항목 추가 룰이 박힌 형태

Phase 0 자동화 항목 모두 철덼. Phase 0.7 (#443) / Phase 1 dFS / #444 production guards 도 체크리스트에 트래킹되어 있다.

CP Chris Park이(가) 6달 전에 변경 Actions #6

  • 담당자을(를) James Lee에서 Henry Park(으)로 변경되었습니다.
Actions

내보내기 PDF Atom