본문으로 건너뛰기

보고서 서식 템플릿

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

대상 독자

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

할 수 있는 것과 할 수 없는 것​

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

  • header_text와 org_label은 마크업이 아니라 순수 텍스트입니다. header_text는 보고서 머리글 아래에 한 줄을 더하고, org_label은 "TRUSCA" 브랜드 표기를 대체합니다. 둘 다 보고서가 다른 값에 이미 적용하는 것과 같은 방식으로 HTML 이스케이프됩니다.
  • vulnerability_columns와 component_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입니다.

트러블슈팅​

PUT 시 422 Unprocessable Entity​

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

보고서 다운로드 시 422 Unprocessable Entity​

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

PUT이나 DELETE에서 403 Forbidden​

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

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

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

함께 보기​