Skip to content

CI/CD에서 사용

GitHub Actions, GitLab CI, Jenkins 등에서 logi를 자동화합니다.

CLI 정식 출시 전

logi CLI 는 아직 출시 준비 중 입니다. 이 페이지의 예제는 정식 출시 후 그대로 사용할 수 있도록 패키지 매니저 / install 스크립트 기준으로 작성되어 있으나, 지금 시점에는 직접 빌드 한 바이너리로 동작 검증을 권장합니다.

인증: 환경변수

CI 머신에서 브라우저 OAuth는 못 돌리니, PAK(Personal API Key) 를 발급해 환경변수로 제공:

bash
export LOGI_API_KEY=lpa_pat_xxxxxxxxxxxxx
export LOGI_API_URL=https://api.1pass.dev
logi whoami   # → 자동으로 PAK 인증

PAK 발급은 start.1pass.dev/settings/api-keys 에서.

GitHub Actions 예시

yaml
# .github/workflows/rotate-secret.yml
name: Rotate logi secret monthly
on:
  schedule:
    - cron: "0 0 1 * *"   # 매달 1일 00:00 UTC
  workflow_dispatch:

jobs:
  rotate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install logi CLI
        run: |
          # 현재는 Ruby gem 으로 배포. 스크립트 설치는 추후 추가 예정.
          gem install logi-cli

      - name: Rotate
        env:
          LOGI_API_KEY: ${{ secrets.LOGI_API_KEY }}
        run: |
          # rotate-secret 출력에서 client_secret 추출 (현재 --json 미지원)
          NEW_SECRET=$(logi apps rotate-secret ${{ vars.LOGI_APP_ID }} | awk '/client_secret:/ {print $2}')
          echo "::add-mask::$NEW_SECRET"
          gh secret set OAUTH_CLIENT_SECRET --body "$NEW_SECRET" --repo my-org/my-app
        env:
          GH_TOKEN: ${{ secrets.GH_PAT }}

secret 회전 자동화

권장 주기:

  • 월 1회 — 일반 프로덕션 앱
  • 주 1회 — 결제·민감 정보 다루는 앱
  • 즉시 — 노출 의심 발생 시

GitHub Actions 매트릭스로 여러 앱을 한 번에 돌리는 패턴:

yaml
strategy:
  matrix:
    app: [my-web, my-mobile-bff, my-admin]
steps:
  - run: logi apps rotate-secret ${{ matrix.app }}

환경변수 레퍼런스

변수기본값설명
LOGI_API_KEY(없음)PAK. 있으면 credentials 파일 무시
LOGI_API_URLhttps://api.1pass.dev자체 호스팅 시 변경
LOGI_PORTAL_URLhttps://start.1pass.dev자체 호스팅 시 변경
LOGI_CONFIG_PATH~/.config/logi/credentials.json다른 경로로 이동
LOGI_OUTPUT(TTY: human / 그 외: json)json / human 강제 지정 가능

종료 코드

Thor.exit_on_failure? 기반으로 동작합니다. 성공 시 0, 실패 시 1. 세분화된 에러 코드(인증/권한/네트워크 분리)는 향후 추가 예정.

PAK 마스킹

PAK 는 whoami 출력 등에서 prefix 18자만 표시됩니다.

다음

Identity가 제품의 신뢰를 만듭니다.