docs: add usage reports API documentation#25331
Conversation
Documents the ReportService API for enterprise customers to download daily pull usage reports as CSV files. Covers: - Available report types and column definitions (usage_pulls) - ListReports and GetReportSchema API endpoints - Download workflow with curl examples - Schema versioning, data retention, and FAQ Related PRs: - docker/data-platform#817 (API implementation) - docker/data-contracts#299 (proto definition) - docker/airflow#3827 (DAG that generates the reports) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
❌ Deploy Preview for docsdocker failed. Why did it fail? →
|
docker-agent
left a comment
There was a problem hiding this comment.
Assessment: 🟡 NEEDS ATTENTION
This PR adds new usage-reports.md documentation. The content is well-organized and technically accurate, but there are two issues that need fixing before merge, plus three style guide violations to clean up.
|
|
||
| Key benefits include: | ||
|
|
||
| - **Chargeback and cost allocation**: Track pull activity by user, repository, |
There was a problem hiding this comment.
[HIGH] Bold used for non-UI terms in benefit list items
The list uses **Term**: Description format with bold on non-UI terms (Chargeback and cost allocation, Adoption tracking, Security and compliance, Self-service). Per the Docker style guide, bold must only be used for UI elements (buttons, menus, field labels) — never for emphasis or descriptive labels.
Replace with plain bullet text. For example:
- Track pull activity by user, repository, and IP address to attribute usage to internal teams (chargeback and cost allocation).
- Monitor which images and repositories your organization uses most.
- Audit who pulled what, when, and from where.
- Download reports directly through the API without contacting Docker support.Or restructure as prose.
| keywords: organization, usage reports, pull data, enterprise, export, API, CSV | ||
| --- | ||
|
|
||
| {{< summary-bar feature_name="Usage reports" >}} |
There was a problem hiding this comment.
[HIGH] summary-bar shortcode references a feature not defined in data/summary.yaml
The {{< summary-bar feature_name="Usage reports" >}} shortcode requires a matching entry in data/summary.yaml. That entry does not currently exist — searching the file confirms no Usage reports key is present.
Add an entry to data/summary.yaml before merging. For example:
features:
Usage reports:
subscription: Business
availability: GAWithout this, the shortcode will fail to render or display incorrectly on the published page.
| calendar day (UTC) and includes all authenticated pulls attributed to your | ||
| organization's billing entity. | ||
|
|
||
| **Columns:** |
There was a problem hiding this comment.
[MEDIUM] Bold subsection label **Columns:** should be a heading or plain text
The style guide prohibits using **Bold:** format for subsection labels. Use a proper heading level instead:
#### ColumnsOr simply remove the label and let the table follow the section prose directly. Bold is reserved for UI elements only.
|
|
||
| Returns metadata and download links for available reports. | ||
|
|
||
| **Endpoint:** |
There was a problem hiding this comment.
[MEDIUM] Bold subsection labels (**Endpoint:**, **Request:**, **Response:**) should be headings or plain text
The style guide prohibits using bold for subsection labels. This pattern appears throughout the API reference section (lines 79, 82, 108, 133, 142, 153). Replace each with a fourth-level heading:
#### Endpoint
`POST /docker.marlin.query.v1.ReportService/ListReports`
#### RequestOr use plain text without bold. Bold is reserved for UI elements only (buttons, menus, field labels).
| | Field | Required | Description | | ||
| |-------|----------|-------------| | ||
| | `orgId` | Yes | Your organization ID | | ||
| | `reportType` | Yes | Report type (e.g., `usage_pulls`) | |
There was a problem hiding this comment.
[MEDIUM] Use "for example" instead of "e.g."
The Docker style guide word list requires for example or such as instead of e.g.
| `reportType` | Yes | Report type (for example, `usage_pulls`) |
Summary
ListReportsandGetReportSchemaConnectRPC endpointsusage_pullsreport type, curl examples, schema versioning notes, data retention, and FAQContext
Enterprise customers (starting with Itau) need programmatic access to daily pull usage reports. The API is served by
marlin-apiand reads pre-computed CSV files from S3.Related PRs
Notes
marlin-api.docker.com) is a placeholder pending final routing decisions$TOKEN; will need to specify Org Access Token flow once that's documentedsummary-barshortcode reference may need updating depending on how the feature is gated🤖 Generated with Claude Code