원클릭으로
doc-identity
Agach identity system: authentication (JWT, bcrypt), SSO/OIDC, teams, users, nodes, daemon onboarding, token management
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Agach identity system: authentication (JWT, bcrypt), SSO/OIDC, teams, users, nodes, daemon onboarding, token management
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Agach complete HTTP API reference: all REST endpoints, request/response types, WebSocket events, SSE, query parameters
Agach daemon agent: onboarding, WebSocket reconnect, Docker builds, chat sessions (Claude CLI), git worktrees, SQLite persistence
Agach shared infrastructure: internal/pkg (controller, middleware, websocket, sse, apierror), pkg (server types, client SDK, daemonws, domainerror), agachconfig
Agach project hexagonal architecture: bounded contexts, source code hierarchy, entry points, layers, and package structure
Agach business rules: blocking workflow, won't-do workflow, GetNextTask logic, resolution auto-append, priority system, comment system, features
Agach database schema: PostgreSQL tables for projects, roles, tasks, columns, comments, dependencies, features, skills, dockerfiles, notifications, chat sessions, specialized agents, nodes, onboarding
| name | doc-identity |
| description | Agach identity system: authentication (JWT, bcrypt), SSO/OIDC, teams, users, nodes, daemon onboarding, token management |
| user-invocable | true |
| disable-model-invocation | false |
internal/identity/)Authentication, authorization, SSO, team management, and daemon node onboarding.
domain/types.go)UserID, TeamID — UUID-based identifiersMemberRole — "admin" or "member"Team — ID, Name, Slug, Description, timestampsUser — ID, Email, DisplayName, PasswordHash, SSOProvider, SSOSubject, Role, TeamID, timestampsActor — UserID, Email, Role + IsAdmin() method (request-scoped auth context)DaemonActor — NodeID, OwnerUserID, Mode + IsZero() methoddomain/node.go)NodeID, OnboardingCodeID — UUID-based identifiersNodeMode — "default" or "shared"NodeStatus — "active" or "revoked"Node — ID, OwnerUserID, Name, Mode, Status, RefreshTokenHash, LastSeenAt, RevokedAt, timestampsOnboardingCode — ID, Code (6-digit), CreatedByUserID, NodeMode, NodeName, ExpiresAt, UsedAt, UsedByNodeIDNodeAccess — ID, NodeID, UserID (nullable), TeamID (nullable)domain/ssoconfig.go)SsoProvider — Name, Icon, SAML (nullable), OIDC (nullable)OIDCConfig — IssuerURL, ClientID, ClientSecret, RedirectURL, ScopesSAMLConfig — MetadataURL, EntityID, ACSURL, Certificate (not yet supported)domain/ttl.go)domain/errors.go)ErrUnauthorized, ErrForbidden, ErrUserNotFound, ErrInvalidCredentials, ErrEmailAlreadyExists, ErrSSOUserNoPassword, ErrTeamNotFound, ErrTeamSlugConflict, ErrSSOProviderNotFound, ErrSSONotSupported, ErrNodeNotFound, ErrNodeRevoked, ErrOnboardingCodeNotFound/Expired/Used
UserRepository — Create, FindByID, FindByEmail, FindBySSO, Update, ListAll, ListByTeamTeamRepository — Create, FindByID, FindBySlug, List, Update, DeleteNodeRepository — Create, FindByID, ListByOwner, ListActiveByOwner, Update, UpdateLastSeenOnboardingCodeRepository — Create, FindByCode, MarkUsed (FOR UPDATE lock), DeleteExpiredNodeAccessRepository — GrantUser/Team, RevokeUser/Team, ListByNode, HasAccess (ON CONFLICT DO NOTHING)AuthCommands — Register, Login, LoginSSO, RefreshToken, Logout, UpdateProfile, ChangePassword, RefreshDaemonTokenAuthQueries — ValidateJWT, ValidateDaemonJWT, GetCurrentUserTeamCommands — CreateTeam, UpdateTeam, DeleteTeam, AddUserToTeam, RemoveUserFromTeam, SetUserRoleTeamQueries — ListTeams, GetTeam, ListUsers, ListTeamMembersOnboardingCommands — GenerateCode, CompleteOnboardingNodeCommands — RevokeNode, UpdateNodeAccess, RenameNodeNodeQueries — ListNodes, GetNodeapp/auth.go)app/sso.go)app/teams.go)actor.IsAdmin()app/onboarding.go)app/nodes.go)POST /api/auth/register — Register new user
POST /api/auth/login — Login (email/password, remember_me)
POST /api/auth/refresh — Refresh access token (refresh_token cookie)
POST /api/auth/logout — Clear refresh_token cookie
GET /api/auth/me — Get current user
PATCH /api/auth/me — Update display name
POST /api/auth/me/password — Change password
GET /api/auth/sso/providers — List configured providers
GET /api/auth/sso/{provider}/authorize — OIDC authorization initiation
GET /api/auth/sso/{provider}/callback — OIDC callback (returns #sso_token=...)
GET /api/identity/teams — List teams
POST /api/identity/teams — Create team (admin)
DELETE /api/identity/teams/{id} — Delete team (admin)
GET /api/identity/users — List users (admins see emails)
PUT /api/identity/users/{id}/team — Add user to team (admin)
DELETE /api/identity/users/{id}/team — Remove from team (admin)
PUT /api/identity/users/{id}/role — Set user role (admin)
POST /api/onboarding/codes — Generate onboarding code (auth required)
POST /api/onboarding/complete — Complete onboarding (unauthenticated)
POST /api/daemon/refresh — Refresh daemon token (unauthenticated)
GET /api/nodes — List nodes (auth required)
GET /api/nodes/{id} — Get node (ownership required)
DELETE /api/nodes/{id} — Revoke node (ownership required)
PATCH /api/nodes/{id}/name — Rename node
PUT /api/nodes/{id}/access — Update access grants (shared mode only)
init.go)