alpacon work-session
작업 세션을 생성, 조회, 관리합니다. 작업 세션은 서버 접근을 허가하는 승인 기반 작업 단위입니다. 전체 개념은 작업 세션 문서를 참고하세요.
alpacon work-session [command] [flags]
별칭: work-session, session
권장 워크플로
# 1. 현재 인증에 작업 세션이 필요한지 확인
alpacon whoami
# 2. 세션을 생성하고 승인을 기다린 뒤 활성 세션으로 지정
alpacon work-session create --purpose "nginx fix" --scope command,websh \
--server web-01 --expires-in 2h --wait --use
# 3. 평소처럼 작업. 게이트 대상 명령이 활성 세션에 자동으로 연결됨
alpacon exec web-01 systemctl status nginx
alpacon websh web-01
수명 주기
pending → approved → active → completed | expired | revoked
↘ rejected
- 세션은 pending(승인 대기) 상태로 시작하며 승인을 받아야 사용할 수 있습니다. Superuser 본인의 요청은 자동으로 승인됩니다.
- 승인된 세션은 시작 시각이 되면 active 상태가 되며,
activate로 즉시 활성화할 수도 있습니다. - 세션은
complete로 완료하거나, 만료되거나, Superuser가revoke로 철회하면 종료됩니다. 승인 대기 중인 요청은 rejected(반려)될 수도 있습니다.
게이트 대상 작업
브라우저 로그인으로 인증한 경우, 아래 작업을 실행하려면 해당 기능(scope)을 포함한 활성 작업 세션이 필요합니다. 토큰 인증(API 토큰 또는 서비스 토큰)은 이 요구 사항을 우회합니다.
| 기능(scope) | 게이트 대상 작업 |
|---|---|
websh | alpacon websh(대화형 터미널) |
command | alpacon exec(exec logs 포함), alpacon websh SERVER "command" |
webftp | alpacon cp, alpacon edit |
tunnel | alpacon tunnel |
sudo | 권한 상승, --sudo로 선언한 sudo 명령 패턴 |
editor | Alpacon 웹의 코드 에디터(CLI에서는 게이트 대상 아님) |
alpacon whoami를 실행하면 현재 인증에 작업 세션이 필요한지와 어떤 세션이 활성 상태인지 확인할 수 있습니다.
세션 선택
게이트 대상 명령은 연결할 작업 세션을 다음 순서로 결정합니다.
- 명령에 전달한
--work-session플래그 ALPACON_WORK_SESSION환경 변수alpacon work-session use로 지정한 워크스페이스의 활성 세션
게이트 에러
게이트 대상 명령이 거부되면 alpacon exec, alpacon websh, alpacon cp, alpacon edit은 종료 코드 3으로 종료하고 다음 조치를 안내하는 진단 메시지를 출력합니다. --output json을 사용하면 진단이 stderr에 기계가 읽을 수 있는 JSON으로 출력되어(error_code, reason, context, next_actions 필드 포함) 스크립트와 AI 에이전트가 자동으로 복구할 수 있습니다.
| 에러 코드 | 의미 |
|---|---|
work_session_required | 이 셸에 선택된 작업 세션이 없음 |
work_session_not_active | 세션이 아직 활성 상태가 아님(시작 시각 확인) |
work_session_expired | 세션이 만료됨 |
work_session_scope_not_allowed | 작업이 세션의 기능에 포함되지 않음 |
work_session_server_not_allowed | 대상 서버가 세션에 포함되지 않음 |
work_session_assignee_mismatch | 세션이 다른 주체에게 할당됨 |
work_session_not_usable | 세션을 더 이상 사용할 수 없음 |