버전 기록 목록¶
GET /api/v1/pipeline_history/{pl_uuid}/list
개요¶
현재 설정과 최근 90일 이력을 반환하며, id 내림차순으로 페이지네이션됩니다. pageSize 기본값은 30이고, 첫 화면에는 currentPipelineInfo를 반환하며, historyRecord는 경량 메타데이터입니다.
경로 매개변수¶
| 매개변수 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| pl_uuid | string | Y | Pipeline UUID |
Query 요청 매개변수¶
| 매개변수 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| seqID | integer | 페이지네이션 커서로 양의 정수입니다. 이전 페이지 historyRecord의 마지막 항목 id를 사용하며, uuid나 configVersion이 아닙니다. 첫 화면에서는 생략되고, 다음 페이지에서는 이 id보다 작은 이력이 반환됩니다. Null 허용: False |
|
| pageSize | integer | 페이지당 이력 레코드 수이며 기본값은 30, 최소 1, 최대 100입니다. 첫 화면에서 별도로 반환되는 현재 버전에는 포함되지 않습니다. Null 허용: False $minValue: 1 $maxValue: 100 |
매개변수 추가 설명¶
워크스페이스 사용자 정의 Pipeline의 현재 설정과 보관된 이전 버전을 조회합니다. 버전 감사, CI 비교, 복원 전 버전 선택에 적합합니다.
페이지네이션 절차¶
- 첫 번째 호출에서는 seqID를 전달하지 않으며, pageSize 기본값은 30이고 범위는 1~100입니다.
- 첫 화면의 content에는 currentPipelineInfo(현재 전체 config 포함)와 historyRecord(메타데이터만 포함, config 제외)가 포함됩니다. 새로 생성되었거나 아직 수정되지 않은 리소스의 경우 historyRecord가 비어 있을 수 있습니다.
- 다음 페이지에는 이 페이지 historyRecord의 마지막 레코드에 대한 숫자 id를 seqID로 전달합니다. 이전 uuid나 configVersion을 전달하지 마십시오. 이력은 id 내림차순으로 반환되며, 다음 페이지에서는 커서보다 작은 id의 레코드만 반환되고 currentPipelineInfo는 다시 반환되지 않습니다.
- 반환된 레코드 수가 pageSize보다 적으면 중지할 수 있습니다. 정확히 페이지가 가득 찬 경우 계속 요청하며, 빈 배열은 더 이상 이력이 없음을 의미합니다. API는 총개수나 페이지 번호를 반환하지 않습니다.
목록은 보관 시간 기준 최근 90일의 이력만 반환합니다. 현재 설정은 항상 기본 테이블에서 가져오므로 이 기간 제한을 받지 않습니다. 페이지네이션은 고정된 스냅샷이 아니므로 동시에 생성된 새 버전은 첫 화면을 다시 요청해야 확인할 수 있습니다. 감사용으로 이력 콘텐츠를 영구 보존하려면 보존 기간 내에 직접 내보내기하여 저장해야 합니다.
사용 전제 조건¶
소속 워크스페이스의 DF-API-KEY를 사용하여 OpenAPI 서비스를 호출합니다. 조회에는 읽기 권한이 필요하며, 복원 및 복제에는 Pipeline 관리 및 쓰기 권한이 필요합니다. API는 요청 본문을 통해 다른 워크스페이스나 작업자를 지정하는 것을 지원하지 않습니다. 예시의 Endpoint, 리소스 UUID, API-Key는 모두 자리 표시자이므로 교체한 후 호출하고, 로그에 API Key를 출력하지 마십시오.
응답 예시는 가상의 리소스를 사용하여 대표적인 비즈니스 필드를 보여줍니다. 실제 응답에는 일반 Pipeline API의 다른 필드가 포함될 수 있습니다. 호출자는 새로 추가된 필드와 호환되어야 합니다.
버전 필드¶
| 필드 | 의미 |
|---|---|
| configVersion | 설정 버전 번호. 새 리소스는 1부터 시작하며, 활성화/비활성화는 이 버전을 증가시키지 않습니다 |
| configVersionAt | 이 설정 버전의 생성 시간. Unix 초 단위 타임스탬프이며 밀리초가 아닙니다 |
| configVersionOperator / configVersionOperatorInfo | 작업자 식별자 및 표시 정보. 표시 정보를 해석할 수 없는 경우 빈 객체일 수 있습니다 |
| configVersionSource / configVersionAction | 버전 출처 및 동작(예: openapi/modify, history/history_restore) |
| configVersionSourceInfo | 출처 추가 정보. 이력 작업에는 pipelineHistoryUUID, pipelineUUID, configVersion이 포함됩니다 |
| createAt | 이력 스냅샷의 보관 시간. configVersionAt보다 늦을 수 있으며, 이력 목록 보존 기간은 이 필드를 기준으로 계산됩니다 |
이력의 config.content와 config.testData는 Base64 인코딩 문자열입니다. 호출자는 먼저 Base64로 디코딩한 후 UTF-8로 읽어야 합니다. testData는 테스트 샘플로, 조회나 복원 API를 호출해도 자동으로 실행되지 않습니다. configVersionSourceInfo의 출처 버전 번호를 현재 버전 번호로 간주하지 마십시오.
예외 처리¶
잘못된 페이지네이션 매개변수는 거부됩니다. 리소스가 존재하지 않거나, 삭제되었거나, 현재 워크스페이스에 속하지 않으면 조회할 수 없습니다. 읽기 실패 시 오류 유형에 따라 재시도할 수 있지만, 리소스 UUID를 변경하여 워크스페이스 권한을 우회할 수는 없습니다.
요청 예시¶
curl 'https://openapi.guance.com/api/v1/pipeline_history/<pl_uuid>/list?pageSize=30' -H 'DF-API-KEY: <API-Key>'
응답¶
{
"code": 200,
"content": {
"currentPipelineInfo": {
"pipelineUUID": "pl_example",
"configVersion": 3,
"configVersionAt": 1788800100,
"configVersionOperator": "acnt_example",
"configVersionOperatorInfo": {},
"configVersionSource": "openapi",
"configVersionAction": "modify",
"configVersionSourceInfo": {},
"config": {
"name": "demo",
"type": "local",
"category": "logging",
"source": [
"nginx"
],
"content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==",
"testData": "W10=",
"dataType": "line_protocol",
"asDefault": 0,
"enableByLogBackup": 0,
"extend": {}
}
},
"historyRecord": [
{
"id": 101,
"uuid": "plh_example",
"pipelineUUID": "pl_example",
"configVersion": 2,
"configVersionAt": 1788800000,
"configVersionOperator": "acnt_example",
"configVersionOperatorInfo": {},
"configVersionSource": "openapi",
"configVersionAction": "modify",
"configVersionSourceInfo": {},
"createAt": 1788800100
}
]
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE_EXAMPLE"
}