컨테이너 레지스트리를 구성하기 위한 API를 기술합니다. API를 사용하려면 User Access Key와 Secret Access Key가 필요합니다. User Access Key와 Secret Access Key는 NHN Cloud 콘솔의 계정 > API 보안 설정 페이지에서 생성합니다.
API를 사용하려면 서비스 AppKey가 필요합니다. 서비스 Appkey는 콘솔 상단 URL & Appkey 메뉴에서 확인이 가능합니다. API 도메인은 다음과 같습니다.
리전 | 도메인 |
---|---|
한국(판교) 리전 | https://kr1-ncr.api.nhncloudservice.com |
한국(평촌) 리전 | https://kr2-ncr.api.nhncloudservice.com |
API 헤더는 다음과 같습니다
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
X-TC-AUTHENTICATION-ID | Header | String | O | User Access Key |
X-TC-AUTHENTICATION-SECRET | Header | String | X (생성하였을 경우 필수) | Secret Access Key |
모든 API 요청에 200 OK로 응답합니다. 자세한 응답 결과는 응답 본문 헤더를 참고합니다.
이름 | 종류 | 형식 | 설명 |
---|---|---|---|
header | Body | Object | |
header.isSuccessful | Body | Boolean | true: 정상 false: 오류 |
header.resultCode | Body | Integer | 200: 정상 10000 이상: 오류 |
header.resultMessage | Body | String | "SUCCESS": 정상 그 외: 오류 원인 메시지 |
[주의] API 응답에 가이드에 명시되지 않은 필드가 나타날 수 있습니다. 이런 필드는 NHN Cloud 내부 용도로 사용되며 사전 공지 없이 변경될 수 있으므로 사용하지 않습니다.
[주의] 리소스를 생성할 때 입력하지 않은 옵션 필드는 조회할 때 응답 본문에 나타나지 않을 수 있습니다.
컨테이너 레지스트리 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
registries | Body | Array | O | 컨테이너 레지스트리 목록 |
registries.project_id | Body | Integer | O | 컨테이너 레지스트리 ID |
registries.name | Body | String | O | 컨테이너 레지스트리 이름 |
registries.creation_time | Body | String | O | 생성 시간 |
registries.update_time | Body | String | O | 변경 시간 |
registries.repo_count | Body | Integer | O | 컨테이너 레지스트리에 있는 이미지 개수 |
registries.metadata | Body | Object map[string]string | O | 컨테이너 레지스트리 설정 |
registries.metadata.auto_scan | Body | String | O | 이미지를 push할 때 자동으로 스캔 여부: true/false |
registries.metadata.severity | Body | String | X | 취약점 심각도: critical/medium/high/low/none |
registries.metadata.prevent_vul | Body | String | O | 이미지의 취약점 심각도에 따라 pull 방지 설정 여부: true/false |
registries.metadata.reuse_sys_cve_allowlist | Body | String | O | 공통 CVE 허용 목록 사용 여부: true/false |
registries.cve_allowlist | Body | Object | O | 취약점 허용 목록 |
registries.cve_allowlist.id | Body | Integer | O | 취약점 허용 목록 ID |
registries.cve_allowlist.items | Body | Object List | O | CVE 목록 |
registries.cve_allowlist.items.cve_id | Body | String | X | CVE ID |
registries.registry_id | Body | Integer | O | 0이 아니면 이미지 캐시 유형, 0이면 일반 유형 |
registries.usage | Body | Integer | O | 컨테이너 레지스트리 사용량 |
registries.uri | Body | String | O | 컨테이너 레지스트리 접근 URI |
registries.private_uri | Body | String | O | 컨테이너 레지스트리 접근 Private URI |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"registries": [
{
"project_id": 2,
"name": "hy",
"creation_time": "2023-03-14T02:41:10.525Z",
"update_time": "2023-03-14T02:41:10.525Z",
"repo_count": 2,
"metadata": {
"auto_scan": "true",
"prevent_vul": "true",
"public": "false",
"retention_id": "1",
"severity": "critical"
},
"cve_allowlist": {
"id": 2,
"project_id": 2,
"items": []
},
"registry_id": 0,
"usage": 57464288,
"uri": "63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy",
"private_uri": "private-63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy"
}
]
}
컨테이너 레지스트리 정보를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
registry | Body | Object | O | 컨테이너 레지스트리 정보 |
registry.project_id | Body | Integer | O | 컨테이너 레지스트리 ID |
registry.name | Body | String | O | 컨테이너 레지스트리 이름 |
registry.creation_time | Body | String | O | 생성 시간 |
registry.update_time | Body | String | O | 변경 시간 |
registry.repo_count | Body | Integer | O | 컨테이너 레지스트리에 있는 이미지 개수 |
registry.metadata | Body | Object map[string]string | O | 컨테이너 레지스트리 설정 |
registry.metadata.auto_scan | Body | String | O | 이미지를 push할 때 자동으로 스캔 여부: true/false |
registry.metadata.severity | Body | String | X | 취약점 심각도: critical/medium/high/low/none |
registry.metadata.prevent_vul | Body | String | O | 이미지의 취약점 심각도에 따라 pull 방지 설정 여부: true/false |
registry.metadata.reuse_sys_cve_allowlist | Body | String | O | 공통 CVE 허용 목록 사용 여부: true/false |
registry.cve_allowlist | Body | Object | O | 취약점 허용 목록 |
registry.cve_allowlist.id | Body | Integer | O | 취약점 허용 목록 ID |
registry.cve_allowlist.items | Body | Object List | O | CVE 목록 |
registry.cve_allowlist.items.cve_id | Body | String | X | CVE ID |
registry.registry_id | Body | Integer | O | 0이 아니면 이미지 캐시 유형, 0이면 일반 유형 |
registry.usage | Body | Integer | O | 컨테이너 레지스트리 사용량 |
registry.uri | Body | String | O | 컨테이너 레지스트리 접근 URI |
registry.private_uri | Body | String | O | 컨테이너 레지스트리 접근 Private URI |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"registry": {
"project_id": 2,
"name": "hy",
"creation_time": "2023-03-14T02:41:10.525Z",
"update_time": "2023-03-14T02:41:10.525Z",
"repo_count": 2,
"metadata": {
"auto_scan": "true",
"prevent_vul": "true",
"public": "false",
"retention_id": "1",
"severity": "critical"
},
"cve_allowlist": {
"id": 2,
"project_id": 2,
"items": []
},
"registry_id": 0,
"usage": 57464288,
"uri": "63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy",
"private_uri": "private-63ae9964-alp-kr1-registry.container.cloud.toastoven.net/hy"
}
}
컨테이너 레지스트리를 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
project_name | Body | String | O | 컨테이너 레지스트리 이름 |
metadata | Body | Object map[string]string | X | 컨테이너 레지스트리 설정 |
metadata.auto_scan | Body | String | X | 이미지를 push할 때 자동으로 스캔 여부: true/false |
metadata.severity | Body | String | X | 취약점 심각도: critical/medium/high/low/none |
metadata.prevent_vul | Body | String | X | 이미지의 취약점 심각도에 따라 pull 방지 설정 여부: true/false |
metadata.reuse_sys_cve_allowlist | Body | String | X | 공통 CVE 허용 목록 사용 여부: true/false |
registry_id | Body | Integer | X | 이미지 캐시 유형의 레지스트리 생성 시 필요한 이미지 캐시 ID |
{
"project_name": "registry"
}
이 API는 공통 정보만 응답합니다.
컨테이너 레지스트리를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
이 API는 공통 정보만 응답합니다.
컨테이너 레지스트리를 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
metadata | Body | Object map[string]string | X | 컨테이너 레지스트리 설정 |
metadata.auto_scan | Body | String | X | 이미지를 push할 때 자동으로 스캔 여부: true/false |
metadata.severity | Body | String | X | 취약점 심각도: critical/medium/high/low/none |
metadata.prevent_vul | Body | String | X | 이미지의 취약점 심각도에 따라 pull 방지 설정 여부: true/false |
metadata.reuse_sys_cve_allowlist | Body | String | X | 공통 CVE 허용 목록 사용 여부: true/false |
cve_allowlist | Body | Object | 설정되어 있을 시 필수 | 취약점 허용 목록 |
cve_allowlist.items | Body | Object List | 설정되어 있을 시 필수 | CVE 목록 |
cve_allowlist.items.cve_id | Body | String | 설정되어 있을 시 필수 | CVE ID |
{
"metadata": {
"auto_scan": "true"
},
"cve_allowlist": {
"items": [
{
"cve_id": "CVE-2011-3374"
}
]
}
}
이 API는 공통 정보만 응답합니다.
이미지 보호 정책 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
immutable_tag_rules | Body | Array | O | 이미지 보호 정책 목록 |
immutable_tag_rules.id | Body | Integer | O | 이미지 보호 정책 ID |
immutable_tag_rules.disabled | Body | Boolean | O | 이미지 보호 정책 활성화 여부 |
immutable_tag_rules.scope | Body | Object | O | 이미지에 대한 보호 정책 정보 |
immutable_tag_rules.scope.include | Body | Boolean | O | 이미지에 대한 보호 정책 설정 여부 |
immutable_tag_rules.scope.pattern | Body | String | O | 보호 대상 이미지 |
immutable_tag_rules.tag | Body | Object | O | 태그에 대한 보호 정책 정보 |
immutable_tag_rules.tag.include | Body | Boolean | O | 태그에 대한 보호 정책 설정 여부 |
immutable_tag_rules.tag.pattern | Body | String | O | 보호 대상 태그 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"immutable_tag_rules": [
{
"id": 1,
"disabled": false,
"scope": {
"include": true,
"pattern": "**"
},
"tag": {
"include": true,
"pattern": "**"
}
}
]
}
이미지 보호 정책을 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
scope | Body | Object | X | 이미지에 대한 보호 정책 정보 |
scope.include | Body | Boolean | X | 이미지에 대한 보호 정책 설정 여부 |
scope.pattern | Body | String | X | 보호 대상 이미지 전체 이미지 대상: ** 입력 |
tag | Body | Object | X | 태그에 대한 보호 정책 정보 |
tag.include | Body | Boolean | X | 태그에 대한 보호 정책 설정 여부 |
tag.pattern | Body | String | X | 보호 대상 태그 전체 태그 대상: ** 입력 |
{
"scope": {
"include": true,
"pattern": "test"
}
}
이 API는 공통 정보만 응답합니다.
이미지 보호 정책을 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules/{rule_id}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
rule_id | URL | String | O | 이미지 보호 정책 ID |
이 API는 공통 정보만 응답합니다.
이미지 보호 정책을 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/immutabletagrules/{rule_id}
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
rule_id | URL | String | O | 이미지 보호 정책 ID |
disabled | Body | Boolean | X | 이미지 보호 정책 활성화 여부 |
scope | Body | Object | O | 이미지에 대한 보호 정책 정보 |
scope.include | Body | Boolean | O | 이미지에 대한 보호 정책 설정 여부 |
scope.pattern | Body | String | O | 보호 대상 이미지 |
tag | Body | Object | O | 태그에 대한 보호 정책 정보 |
tag.include | Body | Boolean | O | 태그에 대한 보호 정책 설정 여부 |
tag.pattern | Body | String | O | 보호 대상 태그 |
{
"disabled": true,
"scope": {
"include": true,
"pattern": "test"
},
"tag": {
"include": false,
"pattern": "**"
}
}
이 API는 공통 정보만 응답합니다.
이미지 정리 정책 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
retention_rules | Body | Array | O | 이미지 정리 정책 목록 |
retention_rules.id | Body | Integer | O | 이미지 정리 정책 ID |
retention_rules.disabled | Body | Boolean | O | 이미지 정리 정책 활성화 여부 |
retention_rules.parameters | Body | Object map | O | 정리 정책 설정 |
retention_rules.parameters.always | Body | Integer | X | 항상 n개의 아티팩트만 보관 |
retention_rules.parameters.latest_pulled_n_images | Body | Integer | X | 가장 최근에 Pull한 n개의 아티팩트만 보관 |
retention_rules.parameters.latest_pushed_n_images | Body | Integer | X | 가장 최근에 Push한 n개의 아티팩트만 보관 |
retention_rules.parameters.n_days_since_last_pull | Body | Integer | X | Push한 날짜가 n일인 아티팩트만 보관 |
retention_rules.parameters.n_days_since_last_push | Body | Integer | X | Pull한 날짜가 n일인 아티팩트만 보관 |
retention_rules.tag | Body | Object | O | 태그에 대한 정리 정책 정보 |
retention_rules.tag.include | Body | Boolean | O | 태그에 대한 정리 정책 설정 여부 |
retention_rules.tag.pattern | Body | String | O | 정리 대상 태그 |
retention_rules.tag.untagged | Body | Boolean | O | 태깅되지 않은 아티팩트 포함 여부 |
retention_rules.scope | Body | Object | O | 이미지에 대한 정리 정책 정보 |
retention_rules.scope.include | Body | Boolean | O | 이미지에 대한 정리 정책 설정 여부 |
retention_rules.scope.pattern | Body | String | O | 정리 대상 이미지 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"retention_rules": [
{
"id": 1,
"disabled": false,
"parameters": {
"always": -1
},
"tag": {
"include": true,
"pattern": "**",
"untagged": false
},
"scope": {
"include": true,
"pattern": "**"
}
}
]
}
이미지 정리 정책을 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
tag | Body | Object | X | 태그에 대한 정리 정책 정보 |
tag.include | Body | Boolean | X | 태그에 대한 정리 정책 설정 여부 |
tag.pattern | Body | String | X | 정리 대상 태그 전체 태그 대상: ** 입력 |
tag.untagged | Body | Boolean | X | 태깅되지 않은 아티팩트 포함 여부 |
scope | Body | Object | X | 이미지에 대한 정리 정책 정보 |
scope.include | Body | Boolean | X | 이미지에 대한 정리 정책 설정 여부 |
scope.pattern | Body | String | X | 정리 대상 이미지 전체 이미지 대상: ** 입력 |
disabled | Body | Boolean | X | 이미지 정리 정책 활성화 여부 미입력 시 활성화(false) 설정 |
parameters | Body | Object map | O | 정리 정책 설정 |
parameters.always | Body | Integer | X | 항상 n개의 아티팩트만 보관 |
parameters.latest_pulled_n_images | Body | Integer | X | 가장 최근에 Pull한 n개의 아티팩트만 보관 |
parameters.latest_pushed_n_images | Body | Integer | X | 가장 최근에 Push한 n개의 아티팩트만 보관 |
parameters.n_days_since_last_pull | Body | Integer | X | Push한 날짜가 n일인 아티팩트만 보관 |
parameters.n_days_since_last_push | Body | Integer | X | Pull한 날짜가 n일인 아티팩트만 보관 |
{
"scope": {
"include": true,
"pattern": "test"
},
"parameters": {
"latest_pulled_n_images": 2
}
}
이 API는 공통 정보만 응답합니다.
이미지 보호 정책을 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
id | Query | Integer | O | 이미지 정리 정책 ID |
이 API는 공통 정보만 응답합니다.
이미지 보호 정책을 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/{rule_id}
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
rule_id | URL | String | O | 이미지 정리 정책 ID |
disabled | Body | Boolean | X | 이미지 정리 정책 활성화 여부 |
tag | Body | Object | O | 태그에 대한 정리 정책 정보 |
tag.include | Body | Boolean | O | 태그에 대한 정리 정책 설정 여부 |
tag.pattern | Body | String | O | 정리 대상 태그 |
tag.untagged | Body | Boolean | O | 태깅되지 않은 아티팩트 포함 여부 |
scope | Body | Object | O | 이미지에 대한 정리 정책 정보 |
scope.include | Body | Boolean | O | 이미지에 대한 정리 정책 설정 여부 |
scope.pattern | Body | String | O | 정리 대상 이미지 |
parameters | Body | Object map | O | 정리 정책 설정 |
parameters.always | Body | Integer | 설정되어 있을 시 필수 | 항상 n개의 아티팩트만 보관 |
parameters.latest_pulled_n_images | Body | Integer | 설정되어 있을 시 필수 | 가장 최근에 Pull한 n개의 아티팩트만 보관 |
parameters.latest_pushed_n_images | Body | Integer | 설정되어 있을 시 필수 | 가장 최근에 Push한 n개의 아티팩트만 보관 |
parameters.n_days_since_last_pull | Body | Integer | 설정되어 있을 시 필수 | Push한 날짜가 n일인 아티팩트만 보관 |
parameters.n_days_since_last_push | Body | Integer | 설정되어 있을 시 필수 | Pull한 날짜가 n일인 아티팩트만 보관 |
{
"disabled": true,
"scope": {
"include": true,
"pattern": "test"
},
"tag": {
"include": false,
"pattern": "**",
"untagged": false
},
"parameters": {
"latest_pulled_n_images": 2
}
}
이 API는 공통 정보만 응답합니다.
이미지 정리 히스토리 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
executions | Body | Array | O | 이미지 정리 히스토리 목록 |
executions.id | Body | Integer | O | 이미지 정리 히스토리 ID |
executions.dry_run | Body | Boolean | O | 테스트 실행 여부 |
executions.trigger | Body | String | O | 이미지 정리 실행 방식 |
executions.start_time | Body | String | O | 이미지 정리 시작 시간 |
executions.end_time | Body | String | O | 이미지 정리 종료 시간 |
executions.status | Body | String | O | 이미지 정리 상태 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"executions": [
{
"id": 350,
"dry_run": false,
"trigger": "MANUAL",
"start_time": "2023-03-27T17:34:53Z",
"end_time": "2023-03-27T17:34:54Z",
"status": "Success"
}
]
}
이미지 정리 히스토리를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions/{executionId}/tasks
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
executionId | URL | String | O | 이미지 정리 히스토리 ID |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
tasks | Body | Array | O | 태스크 목록 |
tasks.id | Body | Integer | O | 태스크 ID |
tasks.repository | Body | String | O | 정리된 이미지 이름 |
tasks.retained | Body | Integer | O | 이미지 보호 설정 여부 |
tasks.total | Body | Integer | O | 정리된 개수 |
tasks.start_time | Body | String | O | 정리 시작 시간 |
tasks.end_time | Body | String | O | 정리 종료 시간 |
tasks.status | Body | String | O | 태스크 상태 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tasks": [
{
"id": 350,
"repository": "busybox",
"retained": 1,
"total": 1,
"start_time": "2023-03-27T17:34:53Z",
"end_time": "2023-03-27T17:34:54Z",
"status": "Success"
}
]
}
이미지 정리 히스토리 로그를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions/{executionId}/tasks/{taskId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
executionId | URL | String | O | 이미지 정리 히스토리 ID |
taskId | URL | String | O | 이미지 정리 태스크 ID |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
tasks | Body | String | O | 이미지 정리 로그 |
이미지 정리 정책을 실행합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/executions
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
dry_run | Body | Boolean | X | 테스트 실행 여부 |
이 API는 공통 정보만 응답합니다.
이미지 정리 주기를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/schedule
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
trigger | Body | Object | O | 이미지 정리 주기 정보 |
trigger.kind | Body | String | O | 이미지 정리 유형 |
trigger.settings | Body | Object | O | 이미지 정리 주기 설정 |
trigger.settings.cron | Body | String | O | 이미지 정리 주기 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"trigger": {
"kind": "Schedule",
"settings": {
"cron": ""
}
}
}
이미지 정리 주기를 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryId}/retentions/schedule
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryId | URL | String | O | 레지스트리 ID |
settings | Body | Object | O | 이미지 정리 주기 설정 |
settings.cron | Body | String | O | 이미지 정리 주기 |
{
"settings": {
"cron": "0 0 * * 0"
}
}
이 API는 공통 정보만 응답합니다.
웹훅 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
policies | Body | Array | O | 웹훅 목록 |
policies.creation_time | Body | String | O | 웹훅 생성 시간 |
policies.enabled | Body | Boolean | O | 웹훅 활성화 여부 |
policies.event_types | Body | String List | O | 웹훅 이벤트 유형, PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
policies.id | Body | Integer | O | 웹훅 ID |
policies.name | Body | String | O | 웹훅 이름 |
policies.project_id | Body | Integer | O | 레지스트리 ID |
policies.targets | Body | Object List | O | 웹훅 정보 |
policies.targets.address | Body | String | O | 웹훅 엔드포인트 |
policies.targets.type | Body | String | O | 웹훅 알림 유형, http/slack |
policies.targets.auth_header | Body | String | X | 인증 헤더 |
policies.targets.skip_cert_verify | Body | Boolean | X | 인증서 검증 여부 |
policies.update_time | Body | String | O | 웹훅 변경 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policies": [
{
"creation_time": "2023-03-27T22:53:16.719Z",
"enabled": true,
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"id": 1,
"name": "test",
"project_id": 2,
"targets": [
{
"address": "https://192.168.0.1",
"skip_cert_verify": true,
"type": "http"
}
],
"update_time": "2023-03-27T22:53:16.719Z"
}
]
}
웹훅을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
policyId | URL | String | O | 웹훅 ID |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
policy | Body | Object | O | 웹훅 정보 |
policy.creation_time | Body | String | O | 웹훅 생성 시간 |
policy.enabled | Body | Boolean | O | 웹훅 활성화 여부 |
policy.event_types | Body | String List | O | 웹훅 이벤트 유형, PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
policy.id | Body | Integer | O | 웹훅 ID |
policy.name | Body | String | O | 웹훅 이름 |
policy.project_id | Body | Integer | O | 레지스트리 ID |
policy.targets | Body | Object List | O | 웹훅 정보 |
policy.targets.address | Body | String | O | 웹훅 엔드포인트 |
policy.targets.type | Body | String | O | 웹훅 알림 유형, http/slack |
policy.targets.auth_header | Body | String | X | 인증 헤더 |
policy.targets.skip_cert_verify | Body | Boolean | X | 인증서 검증 여부 |
policy.update_time | Body | String | O | 웹훅 변경 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policy": {
"creation_time": "2023-03-27T22:53:16.719Z",
"enabled": true,
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"id": 1,
"name": "test",
"project_id": 2,
"targets": [
{
"address": "https://192.168.0.1",
"skip_cert_verify": true,
"type": "http"
}
],
"update_time": "2023-03-27T22:53:16.719Z"
}
}
웹훅을 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
enabled | Body | Boolean | X | 웹훅 활성화 여부 미입력 시 false 설정 |
event_types | Body | String List | O | 웹훅 이벤트 유형, PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
name | Body | String | X | 웹훅 이름 |
targets | Body | Object List | O | 웹훅 정보 |
targets.address | Body | String | O | 웹훅 엔드포인트 |
targets.type | Body | String | O | 웹훅 알림 유형, http/slack |
targets.auth_header | Body | String | X | 인증 헤더 |
targets.skip_cert_verify | Body | Boolean | X | 인증서 검증 여부 |
{
"event_types": [
"PUSH_ARTIFACT",
"PULL_ARTIFACT",
"DELETE_ARTIFACT"
],
"name": "test",
"targets": [
{
"address":"https://192.168.1.1:8080",
"skip_cert_verify":true,
"type":"http"
}
]
}
이 API는 공통 정보만 응답합니다.
웹훅을 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
policyId | URL | String | O | 웹훅 ID |
이 API는 공통 정보만 응답합니다.
웹훅을 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/registries/{registryNameOrId}/webhook/policies/{policyId}
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryNameOrId | URL | String | O | 레지스트리 이름 또는 ID, 이름이 숫자로만 되어 있으면 X-Is-Resource-Name 값 true 설정 |
X-Is-Resource-Name | Header | String | X | registryNameOrId 값 이름 여부, true/false |
policyId | URL | String | O | 웹훅 ID |
enabled | Body | Boolean | X | 웹훅 활성화 여부 |
event_types | Body | String List | O | 웹훅 이벤트 유형, PUSH_ARTIFACT/PULL_ARTIFACT/DELETE_ARTIFACT |
name | Body | String | X | 웹훅 이름 |
targets | Body | Object List | O | 웹훅 정보 |
targets.address | Body | String | O | 웹훅 엔드포인트 |
targets.type | Body | String | O | 웹훅 알림 유형, http/slack |
targets.auth_header | Body | String | X | 인증 헤더 |
targets.skip_cert_verify | Body | Boolean | X | 인증서 검증 여부 |
{
"event_types": [
"PUSH_ARTIFACT"
],
"targets": [
{
"address":"https://192.168.1.1:8080",
"skip_cert_verify":true,
"type":"http"
}
]
}
이 API는 공통 정보만 응답합니다.
컨테이너 이미지 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
images | Body | Array | O | 컨테이너 이미지 목록 |
images.id | Body | Integer | O | 컨테이너 이미지 ID |
images.name | Body | String | O | 컨테이너 이미지 이름 |
images.project_id | Body | Integer | O | 레지스트리 ID |
images.pull_count | Body | Integer | O | 컨테이너 이미지 pull 횟수 |
images.artifact_count | Body | Integer | O | 컨테이너 이미지 아티팩트 개수 |
images.creation_time | Body | String | O | 컨테이너 이미지 생성 시간 |
images.update_time | Body | String | O | 컨테이너 이미지 변경 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"images": [
{
"id": 1,
"name": "hy/busybox",
"project_id": 2,
"description": "",
"pull_count": 8,
"artifact_count": 1,
"creation_time": "2023-03-27T01:55:13.176Z",
"update_time": "2023-03-27T02:02:07.764Z"
}
]
}
컨테이너 이미지를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
image | Body | Object | O | 컨테이너 이미지 목록 |
image.id | Body | Integer | O | 컨테이너 이미지 ID |
image.name | Body | String | O | 컨테이너 이미지 이름 |
image.project_id | Body | Integer | O | 레지스트리 ID |
image.pull_count | Body | Integer | O | 컨테이너 이미지 pull 횟수 |
image.artifact_count | Body | Integer | O | 컨테이너 이미지 아티팩트 개수 |
image.creation_time | Body | String | O | 컨테이너 이미지 생성 시간 |
image.update_time | Body | String | O | 컨테이너 이미지 변경 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"image": {
"id": 1,
"name": "hy/busybox",
"project_id": 2,
"description": "",
"pull_count": 8,
"artifact_count": 1,
"creation_time": "2023-03-27T01:55:13.176Z",
"update_time": "2023-03-27T02:02:07.764Z"
}
}
컨테이너 이미지를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
이 API는 공통 정보만 응답합니다.
아티팩트 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
with_scan_overview | Query | String | X | 취약점 정보 조회 여부 |
with_accessory | Query | String | X | 인증 정보 조회 여부 |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
artifacts | Body | Array | O | 아티팩트 목록 |
artifacts.digest | Body | String | O | 아티팩트 다이제스트 |
artifacts.extra_attrs | Body | Object | O | 아티팩트 추가 정보 |
artifacts.scan_overview | Body | Object | X | 아티팩트 스캔 정보 |
artifacts.accessories | Body | Object | X | 아티팩트 인증 정보 |
artifacts.manifest_media_type | Body | String | O | 아티팩트 타입 |
artifacts.media_type | Body | String | O | 아티팩트 타입 |
artifacts.size | Body | Integer | O | 아티팩트 크기 |
artifacts.pull_time | Body | String | O | 아티팩트 pull 시간 |
artifacts.push_time | Body | String | O | 아티팩트 push 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"artifacts": [
{
"digest": "sha256:ba7000206594c2d72c3ab550453004c0dc50961157e5ebd2fb8ea1890099d02d",
"extra_attrs": {
"architecture": "arm64",
"author": "",
"config": {
"Cmd": [
"sh"
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
},
"created": "2023-03-17T01:46:42.521879748Z",
"os": "linux"
},
"icon": "sha256:0048162a053eef4d4ce3fe7518615bef084403614f8bca43b40ae2e762e11e06",
"id": 1,
"labels": null,
"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json",
"media_type": "application/vnd.docker.container.image.v1+json",
"project_id": 2,
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.082Z",
"references": null,
"repository_id": 1,
"size": 2003144,
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
],
"type": "IMAGE",
"accessories": null
}
]
}
아티팩트를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
with_scan_overview | Query | String | X | 취약점 정보 조회 여부 |
with_accessory | Query | String | X | 인증 정보 조회 여부 |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
artifact | Body | Object | O | 아티팩트 정보 |
artifact.digest | Body | String | O | 아티팩트 다이제스트 |
artifact.extra_attrs | Body | Object | O | 아티팩트 추가 정보 |
artifact.scan_overview | Body | Object | X | 아티팩트 스캔 정보 |
artifact.accessories | Body | Object | X | 아티팩트 인증 정보 |
artifact.manifest_media_type | Body | String | O | 아티팩트 타입 |
artifact.media_type | Body | String | O | 아티팩트 타입 |
artifact.size | Body | Integer | O | 아티팩트 크기 |
artifact.pull_time | Body | String | O | 아티팩트 pull 시간 |
artifact.push_time | Body | String | O | 아티팩트 push 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"artifact": {
"digest": "sha256:ba7000206594c2d72c3ab550453004c0dc50961157e5ebd2fb8ea1890099d02d",
"extra_attrs": {
"architecture": "arm64",
"author": "",
"config": {
"Cmd": [
"sh"
],
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
},
"created": "2023-03-17T01:46:42.521879748Z",
"os": "linux"
},
"icon": "sha256:0048162a053eef4d4ce3fe7518615bef084403614f8bca43b40ae2e762e11e06",
"id": 1,
"labels": null,
"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json",
"media_type": "application/vnd.docker.container.image.v1+json",
"project_id": 2,
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.082Z",
"references": null,
"repository_id": 1,
"size": 2003144,
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
],
"type": "IMAGE",
"accessories": null
}
}
아티팩트를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
이 API는 공통 정보만 응답합니다.
아티팩트 태그 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
tags | Body | Array | O | 아티팩트 태그 목록 |
tags.id | Body | Integer | O | 아티팩트 태그 ID |
tags.name | Body | String | O | 아티팩트 태그 이름 |
tags.pull_time | Body | String | O | 아티팩트 태그 pull 시간 |
tags.push_time | Body | String | O | 아티팩트 태그 push 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tags": [
{
"artifact_id": 1,
"id": 1,
"immutable": false,
"name": "latest",
"pull_time": "2023-03-27T02:02:01.703Z",
"push_time": "2023-03-27T01:55:14.642Z",
"repository_id": 1,
"signed": false
}
]
}
아티팩트 태그를 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
name | Body | String | O | 아티팩트 태그 이름 |
{
"name": "test"
}
이 API는 공통 정보만 응답합니다.
아티팩트 태그를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/tags/{tagName}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
tagName | URL | String | O | 아티팩트 태그 이름 |
이 API는 공통 정보만 응답합니다.
아티팩트 취약점 정보를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/additions/vulnerabilities
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
vulnerability | Body | Object | O | 취약점 정보 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"vulnerability": {
"application/vnd.security.vulnerability.report; version=1.1": {
"generated_at": "2023-03-30T00:00:17.415030483Z",
"scanner": {
"name": "Trivy",
"vendor": "Aqua Security",
"version": "v0.35.0"
},
"severity": "Unknown",
"vulnerabilities": [{
"id": "CVE-2011-3374",
"package": "apt",
"version": "2.2.4",
"fix_version": "",
"severity": "Low",
"description": "It was found that apt-key in apt, all versions, do not correctly validate gpg keys with the master keyring, leading to a potential man-in-the-middle attack.",
"links": [
"https://avd.aquasec.com/nvd/cve-2011-3374"
],
"artifact_digests": [
"sha256:d77ece68485895479a344efa4934f80ad07a2814c3473d8580d3f31b35a615df"
],
"preferred_cvss": {
"score_v3": null,
"score_v2": null,
"vector_v3": "",
"vector_v2": ""
},
"cwe_ids": [
"CWE-347"
],
"vendor_attributes": {
"CVSS": {
"nvd": {
"V2Score": 4.3,
"V2Vector": "AV:N/AC:M/Au:N/C:N/I:P/A:N",
"V3Score": 3.7,
"V3Vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
}
}
}
}
]
}
}
}
아티팩트를 스캔합니다.
POST /ncr/v2.0/appkeys/{appKey}/registries/{registryName}/images/{imageName}/artifacts/{reference}/scan
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
registryName | URL | String | O | 레지스트리 이름 |
imageName | URL | String | O | 컨테이너 이미지 이름 |
reference | URL | String | O | 아티팩트 이름 |
이 API는 공통 정보만 응답합니다.
복제 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/replications/policies
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
policies | Body | Array | O | 복제 목록 |
policies.filters | Body | Object List | O | 복제 대상 설정 정보 |
policies.filters.type | Body | String | O | 복제 대상 유형 |
policies.filters.value | Body | String | O | 복제 대상 필터 값 |
policies.dest_registry | Body | Object | O | 대상 레지스트리 정보 |
policies.dest_registsry.name | Body | String | O | 대상 리전 이름 |
policies.dest_registsry.id | Body | Integer | X | 대상 리전 ID, 값이 존재하면 Push 복제 |
policies.creation_time | Body | String | O | 생성 시간 |
policies.src_registry | Body | Object | O | 소스 레지스트리 정보 |
policies.src_registry.name | Body | String | O | 소스 리전 이름 |
policies.src_registry.id | Body | Integer | X | 소스 리전 ID, 값이 존재하면 Pull 복제 |
policies.trigger | Body | Object | O | 복제 실행 방식 |
policies.trigger.type | Body | String | O | manual(설정 안 함)/scheduled(사용자 설정)/event_based(이벤트 기반) |
policies.trigger.trigger_settings | Body | Object | X | 복제 실행 주기, 복제 실행 방식이 scheduled일 때 필수 |
policies.trigger.trigger_settings.cron | Body | String | X | 복제 실행 주기(Unix cron 표현식 사용) |
policies.dest_namespace | Body | String | X | 대상 레지스트리 |
policies.id | Body | Integer | O | 복제 ID |
policies.enabled | Body | Boolean | O | 복제 활성화 여부 |
policies.name | Body | String | O | 복제 이름 |
policies.dest_project_id | Body | String | O | 복제 대상 프로젝트 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policies": [
{
"update_time": "2023-03-27T23:59:49.381Z",
"dest_namespace_replace_count": 1,
"filters": [
{
"type": "resource",
"value": "image"
},
{
"type": "name",
"value": "**"
},
{
"type": "tag",
"value": "**"
}
],
"dest_registry": {
"status": "healthy",
"credential": {
"access_key": "admin",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-27T23:59:49.378Z",
"name": "KR2",
"url": "https://bddcecbd-alp-kr2-registry.container.cloud.toastoven.net",
"insecure": true,
"creation_time": "2023-03-14T02:41:04.893Z",
"type": "harbor",
"id": 1,
"description": "replication"
},
"creation_time": "2023-03-27T23:59:49.112Z",
"src_registry": {
"status": "healthy",
"credential": {
"access_secret": "*****",
"type": "secret"
},
"update_time": "",
"name": "Local",
"url": "http://harbor-63ae9964-core:80",
"insecure": true,
"creation_time": "0001-01-01T00:00:00Z",
"type": "harbor"
},
"trigger": {
"type": "event_based",
"trigger_settings": {}
},
"id": 3,
"enabled": true,
"name": "test",
"dest_project_id": "8x5SEWjM"
}
]
}
복제를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
policyId | URL | String | O | 복제 ID |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
policy | Body | Object | O | 복제 정보 |
policy.filters | Body | Object List | O | 복제 대상 설정 정보 |
policy.filters.type | Body | String | O | 복제 대상 유형 |
policy.filters.value | Body | String | O | 복제 대상 필터 값 |
policy.dest_registry | Body | Object | O | 대상 레지스트리 정보 |
policy.dest_registsry.name | Body | String | O | 대상 리전 이름 |
policy.dest_registsry.id | Body | Integer | X | 대상 리전 ID, 값이 존재하면 Push 복제 |
policy.creation_time | Body | String | O | 생성 시간 |
policy.src_registry | Body | Object | O | 소스 레지스트리 정보 |
policy.src_registry.name | Body | String | O | 소스 리전 이름 |
policy.src_registry.id | Body | Integer | X | 소스 리전 ID, 값이 존재하면 Pull 복제 |
policy.trigger | Body | Object | O | 복제 실행 방식 |
policy.trigger.type | Body | String | O | manual(설정 안 함)/scheduled(사용자 설정)/event_based(이벤트 기반) |
policy.trigger.trigger_settings | Body | Object | X | 복제 실행 주기, 복제 실행 방식이 scheduled일 때 필수 |
policy.trigger.trigger_settings.cron | Body | String | X | 복제 실행 주기(Unix cron 표현식 사용) |
policy.dest_namespace | Body | String | X | 대상 레지스트리 |
policy.id | Body | Integer | O | 복제 ID |
policy.enabled | Body | Boolean | O | 복제 활성화 여부 |
policy.name | Body | String | O | 복제 이름 |
policy.dest_project_id | Body | String | O | 복제 대상 프로젝트 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"policy": {
"update_time": "2023-03-30T02:34:23.501Z",
"dest_namespace_replace_count": 1,
"filters": [
{
"type": "resource",
"value": "image"
},
{
"type": "name",
"value": "**"
},
{
"type": "tag",
"value": "**"
}
],
"dest_registry": {
"status": "healthy",
"credential": {
"access_key": "admin",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-30T02:34:23.496Z",
"name": "KR2",
"url": "https://bddcecbd-alp-kr2-registry.container.cloud.toastoven.net",
"insecure": true,
"creation_time": "2023-03-14T02:41:04.893Z",
"type": "harbor",
"id": 1,
"description": "replication"
},
"creation_time": "2023-03-30T02:34:23.154Z",
"src_registry": {
"status": "healthy",
"credential": {
"access_secret": "*****",
"type": "secret"
},
"update_time": "",
"name": "Local",
"url": "http://harbor-63ae9964-core:80",
"insecure": true,
"creation_time": "0001-01-01T00:00:00Z",
"type": "harbor"
},
"trigger": {
"type": "event_based",
"trigger_settings": {}
},
"id": 12,
"enabled": true,
"name": "test",
"dest_project_id": "8x5SEWjM"
}
}
복제를 생성합니다.
POST /ncr/v2.0/appkeys/{appKey}/replications/policies
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
dest_registry | Body | Object | X | Push 복제의 대상 레지스트리 정보 |
dest_registry.name | Body | String | O | Push 복제의 대상 리전 이름, KR2 |
dest_registry.id | Body | Integer | O | Push 복제의 대상 리전 ID, 1 |
src_registry | Body | Object | X | Pull 복제의 대상 레지스트리 정보 |
src_registry.name | Body | String | O | Pull 복제의 대상 리전 이름, KR2 |
src_registry.id | Body | Integer | O | Pull 복제의 대상 리전 ID, 1 |
trigger | Body | Object | O | 복제 실행 방식 |
trigger.type | Body | String | O | Push 복제, manual(설정 안 함)/scheduled(사용자 설정)/event_based(이벤트 기반) Pull 복제, manual/scheduled |
trigger.trigger_settings | Body | Object | X | 복제 실행 주기, 복제 실행 방식이 scheduled일 때 필수 설정 |
trigger.trigger_settings.cron | Body | String | X | 복제 실행 주기 설정(Unix cron 표현식 사용) |
dest_namespace | Body | String | X | 대상 레지스트리 |
filters | Body | Object List | X | 복제할 대상 설정 정보, 전체를 대상으로 하는 경우 설정하지 않음 |
filters.type | Body | String | X | 복제할 대상 설정, name(이미지 이름)/tag(태그 이름) |
filters.value | Body | String | X | 필터링할 값 |
filters.decoration | Body | String | X | 필터 유형이 tag일 때 설정, matches(해당하는)/excludes(제외한) |
name | Body | String | O | 복제 이름 |
dest_project_id | Body | String | X | 복제 대상 프로젝트 |
{
"name": "test",
"dest_registry": {
"name": "KR2",
"id":1
},
"trigger": {
"type":"event_based"
}
}
이 API는 공통 정보만 응답합니다.
복제를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
policyId | URL | String | O | 복제 ID |
이 API는 공통 정보만 응답합니다.
복제를 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/replications/policies/{policyId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
policyId | URL | String | O | 복제 ID |
dest_registry | Body | Object | X | Push 복제의 대상 레지스트리 정보 |
dest_registry.name | Body | String | X | Push 복제의 대상 리전 이름, KR2 |
dest_registry.id | Body | Integer | X | Push 복제의 대상 리전 ID, 1 |
src_registry | Body | Object | X | Pull 복제의 대상 레지스트리 정보 |
src_registry.name | Body | String | X | Pull 복제의 대상 리전 이름, KR2 |
src_registry.id | Body | Integer | X | Pull 복제의 대상 리전 ID, 1 |
trigger | Body | Object | O | 복제 실행 방식 |
trigger.type | Body | String | O | Push 복제, manual(설정 안 함)/scheduled(사용자 설정)/event_based(이벤트 기반) Pull 복제, manual/scheduled |
trigger.trigger_settings | Body | Object | 설정되어 있을 시 필수 | 복제 실행 주기, 복제 실행 방식이 scheduled일 때 필수 설정 |
trigger.trigger_settings.cron | Body | String | 설정되어 있을 시 필수 | 복제 실행 주기 설정(Unix cron 표현식 사용) |
dest_namespace | Body | String | 설정되어 있을 시 필수 | 대상 레지스트리 |
filters | Body | Object List | 설정되어 있을 시 필수 | 복제할 대상 설정 정보, 전체를 대상으로 하는 경우 설정하지 않음 |
filters.type | Body | String | 설정되어 있을 시 필수 | 복제할 대상 설정, name(이미지 이름)/tag(태그 이름) |
filters.value | Body | String | 설정되어 있을 시 필수 | 필터링할 값 |
filters.decoration | Body | String | 설정되어 있을 시 필수 | 필터 유형이 tag일 때 설정, matches(해당하는)/excludes(제외한) |
name | Body | String | O | 복제 이름 |
dest_project_id | Body | String | X | 복제 대상 프로젝트 |
{
"name": "test",
"dest_registry": {
"name": "KR2",
"id":1
},
"trigger": {
"type":"event_based"
}
}
이 API는 공통 정보만 응답합니다.
복제 히스토리 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/replications/executions
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
executions | Body | Array | O | 복제 히스토리 목록 |
executions.status | Body | String | O | 복제 상태 |
executions.status_text | Body | String | O | 복제 상태 |
executions.trigger | Body | String | O | 복제 실행 방식 |
executions.start_time | Body | String | O | 복제 시작 시간 |
executions.end_time | Body | String | O | 복제 종료 시간 |
executions.id | Body | Integer | O | 복제 히스토리 ID |
executions.policy_id | Body | Integer | O | 복제 ID |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"executions": [
{
"status": "Succeed",
"status_text": "no resources need to be replicated",
"trigger": "scheduled",
"start_time": "2023-03-29T09:39:59.09Z",
"end_time": "2023-03-29T09:39:59.373Z",
"id": 845,
"policy_id": 9
}
]
}
복제 히스토리를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/replications/executions/{executionId}/tasks
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
executionId | URL | String | O | 복제 히스토리 ID |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
tasks | Body | Array | O | 복제 히스토리 상세 정보 |
tasks.status | Body | String | O | 복제 상태 |
tasks.start_time | Body | String | O | 복제 시작 시간 |
tasks.dst_resource | Body | String | O | 대상 리소스 |
tasks.src_resource | Body | String | O | 소스 리소스 |
tasks.id | Body | Integer | O | Task ID |
tasks.execution_id | Body | Integer | O | 복제 히스토리 ID |
tasks.end_time | Body | String | O | 복제 종료 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"tasks": [
{
"status": "Succeed",
"job_id": "e71b392a391027ced941c4bd",
"start_time": "2023-03-30T08:25:21Z",
"dst_resource": "hy/nginx [1 item(s) in total]",
"src_resource": "hy/nginx [1 item(s) in total]",
"resource_type": "artifact",
"operation": "copy",
"id": 430,
"execution_id": 894,
"end_time": "2023-03-30T08:25:46Z"
}
]
}
복제 히스토리 로그를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/replications/executions/{executionId}/tasks/{taskId}/log
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
executionId | URL | String | O | 복제 히스토리 ID |
taskId | URL | String | O | 복제 히스토리 task ID |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
log | Body | String | O | 복제 히스토리 로그 |
복제를 실행합니다.
POST /ncr/v2.0/appkeys/{appKey}/replications/executions
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
policy_id | Body | Integer | O | 복제 ID |
{
"policy_id": 15
}
이 API는 공통 정보만 응답합니다.
이미지 캐시 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/endpoints
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
page | Query | Integer | X | 조회할 페이지 번호 |
page_size | Query | Integer | X | 조회할 페이지 크기(default: 10) |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
endpoints | Body | Array | O | 이미지 캐시 목록 |
endpoints.status | Body | String | O | 이미지 캐시 상태 |
endpoints.credential | Body | Object | O | 소스 레지스트리 인증 정보 |
endpoints.credential.access_key | Body | String | O | 소스 레지스트리 access ID |
endpoints.credential.access_secret | Body | String | O | 소스 레지스트리 access secret |
endpoints.update_time | Body | String | O | 변경 시간 |
endpoints.name | Body | String | O | 이미지 캐시 이름 |
endpoints.url | Body | String | O | 소스 레지스트리 주소 |
endpoints.insecure | Body | Boolean | O | 인증서 검증 여부 |
endpoints.creation_time | Body | String | O | 생성 시간 |
endpoints.type | Body | String | O | 소스 레지스트리 유형 |
endpoints.id | Body | Integer | O | 이미지 캐시 ID |
endpoints.description | Body | Integer | O | 이미지 캐시 설명 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"endpoints": [
{
"status": "healthy",
"credential": {
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "*****",
"type": "basic"
},
"update_time": "2023-03-28T01:59:42.025Z",
"name": "cache",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"insecure": false,
"creation_time": "2023-03-28T01:59:42.025Z",
"type": "ncr",
"id": 3,
"description": "proxycache/ncr"
}
]
}
이미지 캐시를 생성합니다
POST /ncr/v2.0/appkeys/{appKey}/endpoints
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
name | Body | String | O | 이미지 캐시 이름 |
url | Body | String | O | 소스 레지스트리 주소 |
type | Body | String | O | 소스 레지스트리 유형, harbor/docker-hub/docker-registry/google-gcr/aws-ecr/azure-acr/quay/ncr |
credential | Body | Object | O | 소스 레지스트리 인증 정보 |
credential.access_key | Body | String | O | 소스 레지스트리 access ID |
credential.access_secret | Body | String | O | 소스 레지스트리 access secret |
insecure | Body | Boolean | X | 인증서 검증 여부 |
{
"name": "test",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"type": "ncr",
"credential": {
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "EL3vl7gPWeaEqwGs"
}
}
이 API는 공통 정보만 응답합니다.
이미지 캐시를 삭제합니다.
DELETE /ncr/v2.0/appkeys/{appKey}/endpoints/{endpointId}
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
endpointId | URL | String | O | 이미지 캐시 ID |
이 API는 공통 정보만 응답합니다.
이미지 캐시를 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/endpoints/{endpointId}
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
endpointId | URL | String | O | 이미지 캐시 ID |
name | Body | String | X | 이미지 캐시 이름 |
url | Body | String | X | 소스 레지스트리 주소 |
access_key | Body | String | X | 소스 레지스트리 access ID |
access_secret | Body | String | X | 소스 레지스트리 access secret |
insecure | Body | Boolean | X | 인증서 검증 여부 |
{
"name": "test",
"url": "https://095679f7-kr1-registry.container.nhncloud.com",
"access_key": "hnk8WpQl8uYGGzDiXVAb",
"access_secret": "EL3vl7gPWeaEqwGs"
}
이 API는 공통 정보만 응답합니다.
스캔 주기를 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/scanAll/schedule
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
schedule | Body | Object | O | 스캔 주기 정보 |
schedule.id | Body | Integer | O | 스캔 주기 ID |
schedule.schedule | Body | Object | O | 스캔 주기 |
schedule.schedule.cron | Body | String | O | 스캔 주기의 cron 형식 |
schedule.schedule.type | Body | String | O | 스캔 주기 유형 |
schedule.status | Body | String | O | 상태 |
schedule.creation_time | Body | String | O | 생성 시간 |
schedule.update_time | Body | String | O | 변경 시간 |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"schedule": {
"id": 5,
"schedule": {
"cron": "0 0 * * *",
"type": "Daily"
},
"status": "Running",
"creation_time": "2023-03-28T05:49:33.364Z",
"update_time": "2023-03-28T05:49:33.364Z"
}
}
스캔 주기를 설정합니다.
PUT /ncr/v2.0/appkeys/{appKey}/scanAll/schedule
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
schedule | Body | Object | O | 스캔 주기 정보 |
schedule.cron | Body | String | O | 스캔 주기의 cron 형식 |
schedule.type | Body | String | O | 스캔 주기 유형 |
{
"schedule": {
"cron": "0 0 * * *",
"type": "Daily"
}
}
이 API는 공통 정보만 응답합니다.
공통 CVE 허용 목록을 조회합니다.
GET /ncr/v2.0/appkeys/{appKey}/CVEAllowlist
이 API는 요청 본문을 요구하지 않습니다.
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
cve_allowlist | Body | Object | O | 허용 목록 정보 |
cve_allowlist.id | Body | Integer | O | 허용 목록 ID |
cve_allowlist.items | Body | Object List | O | 허용 목록 |
cve_allowlist.items.cve_id | Body | String | X | CVE ID |
{
"header": {
"resultCode": 200,
"resultMessage": "SUCCESS",
"isSuccessful": true
},
"cve_allowlist": {
"id": 14,
"project_id": 0,
"items": [
{
"cve_id": "CVE-2011-3374"
}
]
}
}
공통 CVE 허용 목록을 변경합니다.
PUT /ncr/v2.0/appkeys/{appKey}/CVEAllowlist
이름 | 종류 | 형식 | 필수 | 설명 |
---|---|---|---|---|
appKey | URL | String | O | 서비스 Appkey |
items | Body | Object List | O | 허용 목록 |
items.cve_id | Body | String | O | CVE ID |
{
"items": [{
"cve_id": "CVE-2011-3374"
}]
}
이 API는 공통 정보만 응답합니다.