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)게이트 대상 작업
webshalpacon websh(대화형 터미널)
commandalpacon exec(exec logs 포함), alpacon websh SERVER "command"
webftpalpacon cp, alpacon edit
tunnelalpacon tunnel
sudo권한 상승, --sudo로 선언한 sudo 명령 패턴
editorAlpacon 웹의 코드 에디터(CLI에서는 게이트 대상 아님)

alpacon whoami를 실행하면 현재 인증에 작업 세션이 필요한지와 어떤 세션이 활성 상태인지 확인할 수 있습니다.

세션 선택

게이트 대상 명령은 연결할 작업 세션을 다음 순서로 결정합니다.

  1. 명령에 전달한 --work-session 플래그
  2. ALPACON_WORK_SESSION 환경 변수
  3. 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세션을 더 이상 사용할 수 없음

관련 명령어

최종 수정: