feat(gateway): stream release progress logs
This commit is contained in:
@@ -36,7 +36,9 @@ Gateway 관리자 콘솔은 `/gateway/admin`에서 시작합니다. 공개 로
|
||||
업데이트가 필요하지 않습니다. 새 branch/commit과 함께 초기화하려면 초기화
|
||||
권한과 버전 배포 권한이 모두 필요합니다.
|
||||
- Gateway 릴리스는 profile 작업과 다른 전역 `admin.releases.manage` 권한을
|
||||
사용하며 외부 release-controller가 실행합니다.
|
||||
사용하며 외부 release-controller가 실행합니다. 선택한 릴리스 작업의 단계와
|
||||
명령 출력을 관리자 화면이 long polling으로 이어 받아 표시하며, 완료된 이력의
|
||||
로그도 다시 열 수 있습니다.
|
||||
- 브라우저의 메뉴 노출은 편의 기능입니다. 권한 판단의 기준은 서버가 인증
|
||||
session에서 해석한 capability입니다.
|
||||
|
||||
|
||||
@@ -125,6 +125,18 @@ Gateway process definition에는 `GATEWAY_DATABASE_URL`과 `REDIS_URL`이 모두
|
||||
|
||||
Gateway 전체에는 활성 릴리스 작업을 동시에 하나만 둘 수 있습니다. 화면의
|
||||
릴리스 이력에서 요청 source, 고정 commit, 상태와 오류를 확인할 수 있습니다.
|
||||
작업을 선택하면 관리자 화면이 `admin.releases.logs`를 최대 20초씩 long polling하여
|
||||
commit 해석, worktree 준비, build 명령 출력, migration, process 전환,
|
||||
readiness와 rollback 진행을 커서 순서대로 이어 붙입니다. 완료된 작업의 로그도
|
||||
같은 이력에서 다시 열 수 있으며 화면은 최근 1,000줄을 유지합니다.
|
||||
|
||||
로그 원본은 Gateway DB의 `GatewayReleaseLog`에 작업별로 저장되고 작업 삭제 시
|
||||
함께 제거됩니다. Controller는 ANSI 제어 문자를 제거하고 secret·token·password
|
||||
계열 환경 변수 값과 URL password를 저장 전에 가립니다. 최초로 이 migration을
|
||||
적용하는 배포에서는 log table이 생기기 전의 build 구간을 기록할 수 없지만,
|
||||
migration 이후 단계와 다음 릴리스부터는 전체 진행 로그를 기록합니다. 로그가
|
||||
관리자 전용이라고 해도 credential이나 실제 환경 파일 내용을 명령 출력에
|
||||
의도적으로 남기지 마세요.
|
||||
|
||||
### Gateway rollback
|
||||
|
||||
|
||||
Reference in New Issue
Block a user