본문으로 건너뛰기

보고서 서식 템플릿

조직은 취약점 PDF 보고서에 머리말 한 줄을 추가하고, 기본 브랜드 표기를 바꾸고, 어떤 열을 렌더링할지 좁힐 수 있습니다. 설정한 행이 없으면 보고서는 지금까지와 똑같이 나옵니다.

대상 독자

super_admin이 행을 설정하거나 제거합니다. developer 이상은 현재 행을 조회하고, 그 설정이 반영된 보고서를 내려받을 수 있습니다(보고서 다운로드 자체는 그 엔드포인트가 나온 이후 계속 developer·viewer 권한이었습니다).

할 수 있는 것과 할 수 없는 것

조직당 행 하나이며, PDF/HTML 보고서에만 적용됩니다. 별도의 Excel 보고서는 자체적으로 더 넓은 열 구성을 유지하며 이 설정의 영향을 받지 않습니다.

  • header_textorg_label은 마크업이 아니라 순수 텍스트입니다. header_text는 보고서 머리글 아래에 한 줄을 더하고, org_label은 "TRUSCA" 브랜드 표기를 대체합니다. 둘 다 보고서가 다른 값에 이미 적용하는 것과 같은 방식으로 HTML 이스케이프됩니다.
  • vulnerability_columnscomponent_columns는 각각 고정된 어휘의 부분집합입니다. 열을 더 적게 고른다고 해서 열의 순서를 바꾸거나 이름을 바꾸거나 값을 계산하지 않습니다. 지정하지 않은 열을 숨길 뿐이고, 남은 열은 전체 보고서가 이미 쓰는 순서 그대로 나옵니다.
  • 취약점 열: cve, cvss, summary, status.
  • 컴포넌트 열: name, version, license, severity, vulns.

요청 시 열 지정

PDF 엔드포인트는 vulnerability_columns·component_columns를 반복 쿼리 매개변수로도 받습니다. 값을 주면 그 요청에 한해서만 조직의 저장된 기본값을 덮어씁니다. 우선순위는 요청 시 지정, 그다음 조직 기본값, 그다음 전체 열 순서입니다.

curl -sS -L -OJ \
-H "Authorization: Bearer ${TRUSTEDOSS_API_KEY}" \
"https://trustedoss.example.com/v1/projects/${PROJECT_ID}/vulnerability-report.pdf?vulnerability_columns=cve&vulnerability_columns=status"

고정된 어휘 밖의 열 이름은 쿼리 문자열에서 왔든 이 행에 대한 PUT에서 왔든 422 Unprocessable Entity로 거부됩니다.

조직 기본값 설정

curl -sS -X PUT "https://trustedoss.example.com/v1/report-format-templates/org/<organization-uuid>" \
-H "Authorization: Bearer ${JWT}" -H "Content-Type: application/json" \
-d '{"org_label": "Acme Corp", "vulnerability_columns": ["cve", "cvss", "status"]}'

모든 필드가 선택 사항이지만 최소 하나는 있어야 합니다. header_text·org_label·vulnerability_columns·component_columns 중 아무것도 설정하지 않고 PUT하면 422 Unprocessable Entity로 거부됩니다. 필요한 것만 설정하면 되고, 나머지는 없는 채로 남습니다.

행 조회·제거

curl -sS -H "Authorization: Bearer ${JWT}" \
"https://trustedoss.example.com/v1/report-format-templates/org/<organization-uuid>"

404 Not Found은 조직이 아직 행을 쓰지 않았다는 뜻일 뿐, 오류가 아닙니다. 같은 경로에 DELETE를 보내면 제거되고, 다음 요청부터 보고서는 서식 없는 출력으로 돌아갑니다.

정상 동작 확인

  1. 프로젝트의 PDF 보고서를 내려받아(GET /v1/projects/{project_id}/vulnerability-report.pdf) "TRUSCA" 대신 조직 표기가 나오고 선택한 열만 렌더링되는지 확인합니다.

API 엔드포인트

모든 경로는 /v1/report-format-templates/org/{organization_id} 아래에 있습니다.

메서드권한설명
PUTsuper_admin조직의 보고서 서식 행을 생성하거나 교체합니다.
GETdeveloper 이상조직의 보고서 서식 행을 조회합니다. 없으면 404입니다.
DELETEsuper_admin조직의 보고서 서식 행을 제거합니다. 성공 시 204, 없었다면 404입니다.

트러블슈팅

PUT422 Unprocessable Entity

네 필드 중 아무것도 설정하지 않았거나, 열 목록 중 하나가 빈 배열이거나(설정하지 않고 null로 두세요), 열 목록이 고정된 어휘 밖의 열 이름을 담고 있습니다.

보고서 다운로드 시 422 Unprocessable Entity

vulnerability_columnscomponent_columns 쿼리 매개변수가 고정된 어휘 밖의 열 이름을 담고 있습니다.

PUT이나 DELETE에서 403 Forbidden

보고서 서식은 특정 팀이 아니라 배포 전체의 모든 프로젝트 보고서에 적용되는 설정이라, super_admin만 쓸 수 있습니다.

서식이 보고서에 나타나지 않음

프로젝트가 그 행을 쓴 조직 소속인지 확인하세요. 행은 조직 경계를 넘지 않습니다. PDF/HTML 보고서를 보고 있는지도 확인하세요. Excel 보고서는 자체 열 구성을 쓰며 이 행의 영향을 받지 않습니다.

함께 보기