프로젝트

일반

사용자정보

Actions

이슈 #448

진행중
HP HP

Phase 0.8 — dKernel Agent Identity Session

이슈 #448: Phase 0.8 — dKernel Agent Identity Session

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

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

0%

추정시간:
(합계: 0:00 시간)

설명

배경

Phase 1 dFS PoC 종합 이슈 #446 이 마감되면서, 그 후속 작업들을 축별 이슈로 분리. 이 이슈는 로드맵 alphea_edge_delta_d_fs_roadmap.md §Phase 0.8 이 정의하는 AI Agent / dshai / wallet-as-identity 흐름이 사람 개입 없이 서비스 형태로 동작하도록 identity session 계층을 정리한다.

현재 상태:

  • Phase 0.7 (이슈 없이 #446 누적) 로 WalletChallenge / WalletVerify + RegisterNode 두 owner principal 수용은 동작
  • dshai / cmd/dsh 가 wallet token 을 수동으로 받아서 동작 (1h TTL 만료 시 사람이 재로그인)
  • command audit 은 조각으로 흔어져 있음 (access_logs)
  • dKernel 자체는 코드로 존재하지 않음 (dshcore 가 임시로 그 자리 메움)

범위 (PoC 컷)

  • Agent identity bootstrap design — key 출처 (local secret store / CI secret / KMS / HSM) 의 connector 인터페이스
  • Wallet JWT 자동 발급·갱신 — WalletChallenge → sign → WalletVerify 흐름의 daemon. expiry 전에 미리 갱신
  • dshai / dKernel token bootstrap — 운영자가 매번 wallet login 안 해도 client 가 알아서
  • Command audit — 어떤 principal 이 어떤 namespace 에서 어떤 명령을 실행했는지 ledger (access_logs 확장 또는 별도 테이블)
  • dKernel control plane scope — 세션 / namespace 권위 / lease / lock / runtime launch 의 권위 분리. 현재 dshcore 가 ad-hoc 으로 권위를 갖고 있는 부분을 정리

디자인 reference

  • 로드맵 §Phase 0.8 (Agent Identity Session)
  • 이슈 #442 에서 추가된 ALPHEA dKernel Spec v0.1 (RFC-A: Identity/Auth, Session, Namespace/Workspace, Lease/Lock/Version + fencing token, Policy/Permission, Runtime/Launch)
  • 이슈 #442 에서 추가된 ALPHEA Distributed Lock Service Application Development Guide v0.1 (Lease + fencing token, gRPC over HTTP/3)

DoD (PoC 컷)

  • Agent identity bootstrap 디자인 결정 (key 출처 / refresh 주기 / failure mode)
  • dshai / dsh 가 wallet token expire 시 자동 갱신 후 재시도 가능
  • command audit 스키마 + 기록 helper + dshai/dsh 경유 흐름 온전 기록
  • dKernel session/namespace 권위 분리 디자인 (현재 dshcore 권위를 정리)
  • sdktest / dshai / dsh 의 reference 검증 흐름 (장기 세션 시나리오)
  • 로드맵 §Phase 0.8 의 ✅ 인용문 갱신

관련

  • precedes / follows #446 (Phase 1 dFS PoC 종합)
  • relates #442 (dKernel spec 원본 추가)

하위 일감 5 (5 건 진행 중 — 모두 미완료)

이슈 #450: Phase 0.8-1 — Signer abstraction + wallet JWT auto-renew해결Henry Park2026/05/19

Actions
이슈 #451: Phase 0.8-2 — command_audit 스키마 + dshcore audit hook해결Henry Park2026/05/19

Actions
이슈 #452: Phase 0.8-3 — Agent session entity + bootstrap RPC해결Henry Park2026/05/19

Actions
이슈 #453: Phase 0.8-4 — DKernelTaskService skeleton (dshai → dKernel routing)해결Henry Park2026/05/19

Actions
이슈 #454: Phase 0.8-5 — 문서·Patent mapping·decision log 정리신규Henry Park2026/05/19

Actions

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

  • Subtask에 #450이(가) 추가되었습니다.

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

  • Subtask에 #451이(가) 추가되었습니다.

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

  • Subtask에 #452이(가) 추가되었습니다.

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

  • Subtask에 #453이(가) 추가되었습니다.

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

  • Subtask에 #454이(가) 추가되었습니다.

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

Phase 0.8 진척 — 첫 슬라이스 완료

commit:server2|752b7be

0.8-1 (Signer abstraction + wallet JWT auto-renew) 가 #450 에서 마감 될. AI Agent 가 cmd/dshai 로 장기 세션을 운영하는 데 운영자 개입이 필요하던 wallet JWT TTL 벍경 공가 막혀. Phase 0.8 의 다른 슬라이스들 (session entity, audit, task routing) 이 의미 있게 동작할 수 있는 기반이 깔림.

명시적 설계 결정

docs/phase-0.8/decision-log.md 의 2026-05-20 entry 가 기록:

  • sdk.Signer.Sign 은 ctx context.Context 를 day-one 에서 부터 받음 (KMS/HSM/keychain/remote agent 는 async)
  • WalletLogin 은 hex string overload 제거 + WalletLoginResult SDK 타입으로 proto 타입 leak 제거 — 이후 0.8-3 agent-session 클래임에서 proto 가 자라도 SDK 표면 안 깨짐
  • backward-compat alias 부재 — Phase 0 GoTrue migration 과 같은 원칙
  • dshcore.Client.SetToken hot-swap 을 서포터 프레임워크 레벨에 넘김 — 0.8-2 audit 과 0.8-3 session refresh 뗌 괴 안에서도 이 시든 재사용

남은 자식 이슈 의존성 체인

  • #451 (0.8-2 command_audit) → #452 (0.8-3 Agent session) → #453 (0.8-4 DKernelTaskService) → #454 (0.8-5 문서·patent mapping)
  • 0.8-1 이 있으므로 0.8-2 감사 레코드가 "장기 세션 운영 중에 쓰이는" 의미를 확보. 0.8-3 session 이 그 위에 SSOT 로 올라감

다음 합류 지점: #451 (0.8-2 command_audit 스키마 + dshcore audit hook).

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

Wiki 재구조 + README framing 재작성

commit:server2|5989ef0

GitLab Wiki 가 87KB 단일 Roadmap 페이지 + 빈 Home 의 상태였어서, Phase 0.8 sub-issue 0.8-5 (문서·patent mapping·decision log) 의 일환으로 wiki 구조를 정리하고 동시에 stale 해진 README 를 dFS/Delta/Lyra/Vega/dKernel layer framing 으로 재작성.

Wiki (GitLab API 로 13개 페이지 생성/업데이트)

  • Home / Roadmap 을 짧은 navigation + phase 상태표로 교체 (긴 원본은 repo 의 alphea_edge_delta_d_fs_roadmap.md 가 source-of-truth).
  • Architecture — 단일 프로세스 다이어그램 + 명명 체계 (dFS / Delta / Lyra / Vega / dKernel) + Principal 모델 + Storage Evolution Stage 1~4.
  • Phases/Phase-0-Auth-and-Identity (0 / 0.5 / 0.7 묶음) / Phases/Phase-0.8-dKernel-Agent-Identity-Session / Phases/Phase-1-dFS-PoC / Phases/Phase-2-Lyra-and-Delta-Registry / Phases/Phase-3-Vega-Runtime / Phases/Phase-4-Web-SDK-and-Capability-Gateway — 각 phase 의 목표 · 완료된 부분 · 후속 · 핵심 commit chain.
  • Decisions / Decisions/Phase-0.8-Decision-Log — Phase 0.8 의 2026-05-19 첫 슬라이스 결정, 2026-05-20 Signer/WalletLogin contract, 세 review fold-back 요약 (원본은 docs/phase-0.8/decision-log.md).
  • References — repo source-of-truth 위치, docs 11종, 외부 시스템 (Redmine / SigNoz / edge-rpc.alphea.io).
  • 분기 안내: 새 docs 와 roadmap 이 feat/dfs-poc 에만 있어서 wiki 의 repo 링크는 전부 feat/dfs-poc 기준.

URL: https://git.alphea.io/Alphea-Dev/alphea-app-v0/alphea-edge-proto/-/wikis/Home

README (이번 commit 5989ef0)

  • Lead 문단 + Features 를 "edge compute + AI Agent 앱 실행 계층" framing 으로 재구성 ("AWS Lambda + S3 의 모바일 엣지 버전").
  • 새 섹션 "Layer / 명명 체계" 에 dFS / Delta / Lyra / Vega / dKernel + Principal 모델 표.
  • Services 표: 12 services / ~67 RPCs. VfsService 제거, DfsService(8) + DeltaService(6, Enable/Disable 포함) 추가. AuthService 7→3 (GenerateKeypair + WalletChallenge + WalletVerify).
  • Quick Start 에 sdktest reference flow (keygen → wallet login → node register --auth wallet → dfs put) 추가.
  • Project Structure: cmd/sdktest·apismoke·dsh·dshai + internal/dshcore 추가, vfs 제거, AIS shell → dShell.
  • Configuration env 표 갱신: GoTrue 5종, WALLET_CHALLENGE_DOMAIN·WALLET_TOKEN_TTL_SECONDS, MONITOR_TEST_CLIENT_ENABLED, ADMIN_SAML_* 4종 추가. PASSWORD_SALT (deprecated) 제거.
  • Documentation 섹션이 docs 10·11, phase-0.8 gap report·decision log, roadmap, GitLab Wiki 모두 링크.

Phase 0.8 와의 관계

Phase 0.8-1 (#450) 의 결정 기록 + 0.8 전체의 patent mapping 표 + dKernel agent identity layer 위치를 wiki 의 Phases/Phase-0.8-... 와 Decisions/Phase-0.8-Decision-Log 에 정리해, 0.8-5 의 문서·patent mapping·decision log 항목의 절반 (외부 가독 표면) 을 메웠다. 남은 0.8-5 작업은 코드/docs 안쪽의 patent component → 구현 위치 mapping 표와 권한 경계 docstring 일관화.

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

Phase 0.8 진척 — 두 번째 슬라이스 완료

commit:server2|6ee2aa3

0.8-2 (command_audit 스키마 + dshcore audit hook) 가 #451 에서 마감. AI replay 소비자가 읽을 수 있는 구조화된 audit 레코드 + 4 헤더 attribution 규칙이 PoC 레벨로 자리 잡음.

핵심 결정 (decision-log 의 2026-05-20 두 번째 entry)

  • X-Alphea-Surface/Command/Request-Id 헤더 규칙 (X-Dshai-* 보다 일반적)
  • Hash = sha256:<hex> of proto.MarshalOptions{Deterministic: true}.Marshal(req) — cross-language canonical JSON 은 deferred
  • error_code 는 dshcore.Code 7종 vocabulary 로 collapse (ConnectRPC code 의 상세 은 client 에게 철렬 노출 안 함)
  • 두 테이블 (access_logs + command_audit) 공존 — 서로 다른 소비자, 2 DB writes per RPC 는 PoC 에서 수용
  • 헤더 는 advisory — permission 은 JWT principal 만

남은 자식 이슈 체인

  • #452 (0.8-3 Agent session entity) → #453 (0.8-4 DKernelTaskService skeleton) → #454 (0.8-5 문서)
  • 0.8-2 가 있으므로 0.8-3 가 추가한 session_id 가 바로 command_audit.agent_session_id 컬럼 을 채운다 — 이미 컬럼 대기
  • namespace 컬럼 은 이 슬라이스에서 비워둔 상태 (per-procedure mapping 또는 proto reflection 이 필요)

다음 합류 지점: #452 (0.8-3 Agent session entity + bootstrap RPC).

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

Phase 0.8 진척 — 세 번째 슬라이스 완료

commit:server2|a0ca19e

0.8-3 (Agent session entity + bootstrap RPC) 가 #452 에서 마감. agent_sessions 가 이제 real persisted entity — audit grouping · heartbeat · continuity 의 SSOT. enforcement 는 아직 안 켜진 — dKernel 슬라이스 멫이.

명시적 설계 결정 (decision-log 의 2026-05-20 세 번째 entry)

  • session = durable persisted row, enforcement 는 후속 — 권한은 JWT 만
  • principal_* 는 server-derived from bearer (client 가 못 보냄) — attribution 신뢰 보존
  • 4 번째 audit 헤더 (X-Alphea-Agent-Session-Id) 구조적으로 기존 3 헤더와 동일 패턴 (advisory)
  • expired/revoked/missing row 는 touch 안 함 — lifecycle 주속·왬곡 방지
  • dshai bootstrap = startup hard requirement (no --no-session escape)

남은 자식 이슈

  • #453 (0.8-4 DKernelTaskService skeleton) → #454 (0.8-5 문서·patent mapping)
  • 0.8-2 의 namespace 컬럼 + 0.8-3 의 session row + 0.8-4 의 task RPC 이 dKernel 권위 계층의 다음 장 재료

다음 합류 지점: #453 (0.8-4 DKernelTaskService skeleton).

Actions

내보내기 PDF Atom