Summary
Removal of the legacy airs runtime dlp-profiles list command is blocked pending product/API clarification: live verification shows it does not return the same data as the new airs runtime dlp profiles list (DLP namespace) command.
Context
Handoff (handoff-remove-runtime-dlp-profiles-cmd-2026-05-28.md) called for deleting the legacy command on the assertion it was fully superseded by the new namespace command. The handoff included an explicit gate: run both against the same tenant, diff the profile sets, and STOP if divergent. Diff is divergent.
Two distinct SDK paths
- Legacy
runtime dlp-profiles list → src/airs/management.ts:385 → this.client.dlpProfiles.list() (SDK Management client, dlp_profiles flat array)
- New
runtime dlp profiles list → src/cli/commands/dlp/profiles.ts:50 → SdkDataProfilesService → client.dlp.dataProfiles.list() (SDK DLP namespace, paginated PageDataProfileResponse)
These hit different backend endpoints.
Live diff (single tenant, same .env)
Commands run from ~/development/cdot65/prisma-airs-cli:
pnpm dev runtime dlp-profiles list --output json > /tmp/legacy.json
pnpm dev runtime dlp profiles list --output json > /tmp/new.json
|
Legacy |
New |
| Endpoint |
Management dlpProfiles |
DLP namespace dlp.dataProfiles |
| Returned |
25 |
25 of 26 (paginated) |
| Profile IDs |
empty strings |
populated (e.g. 11995027) |
| Extra fields |
none (name only) |
type, profile_type, status, version |
| Shape |
[{id,name}] |
{items:[...], page:{number,size,total,returned}} |
Set diff by name:
- Common: 24
- Legacy only:
PII Basic Block All Data
- New only:
Malware
- New reports
total: 26 / returned: 25 — at least one more profile is unfetched in the first page.
Why this blocks removal
The two commands return overlapping but not identical profile sets and materially different shapes. Removing the legacy command without product clarification risks data loss for users who depend on it to see profiles not surfaced by the namespace API (e.g. PII Basic Block All Data).
Asks
- Product/API: confirm whether the Management
dlpProfiles endpoint and the DLP namespace dataProfiles endpoint are intended to be equivalent, and if so why their results diverge for this tenant.
- If they are intentionally distinct (e.g. legacy lists predefined/built-in DLP profiles vs the namespace listing tenant-managed data profiles), the legacy command should stay and be retitled/redocumented rather than removed.
- If they are intended to converge, file an SDK/server bug for the missing/extra entries and the empty IDs in the legacy response, then revisit removal.
Out of scope for this issue
- No code changes proposed here; this is a verification block, not a fix.
- Companion docs handoff (
handoff-docs-remove-dlp-profiles-refs-2026-05-28.md) should also be paused.
References
Summary
Removal of the legacy
airs runtime dlp-profiles listcommand is blocked pending product/API clarification: live verification shows it does not return the same data as the newairs runtime dlp profiles list(DLP namespace) command.Context
Handoff (
handoff-remove-runtime-dlp-profiles-cmd-2026-05-28.md) called for deleting the legacy command on the assertion it was fully superseded by the new namespace command. The handoff included an explicit gate: run both against the same tenant, diff the profile sets, and STOP if divergent. Diff is divergent.Two distinct SDK paths
runtime dlp-profiles list→src/airs/management.ts:385→this.client.dlpProfiles.list()(SDK Management client,dlp_profilesflat array)runtime dlp profiles list→src/cli/commands/dlp/profiles.ts:50→SdkDataProfilesService→client.dlp.dataProfiles.list()(SDK DLP namespace, paginatedPageDataProfileResponse)These hit different backend endpoints.
Live diff (single tenant, same
.env)Commands run from
~/development/cdot65/prisma-airs-cli:dlpProfilesdlp.dataProfiles11995027)type,profile_type,status,version[{id,name}]{items:[...], page:{number,size,total,returned}}Set diff by name:
PII Basic Block All DataMalwaretotal: 26 / returned: 25— at least one more profile is unfetched in the first page.Why this blocks removal
The two commands return overlapping but not identical profile sets and materially different shapes. Removing the legacy command without product clarification risks data loss for users who depend on it to see profiles not surfaced by the namespace API (e.g.
PII Basic Block All Data).Asks
dlpProfilesendpoint and the DLP namespacedataProfilesendpoint are intended to be equivalent, and if so why their results diverge for this tenant.Out of scope for this issue
handoff-docs-remove-dlp-profiles-refs-2026-05-28.md) should also be paused.References
handoff-remove-runtime-dlp-profiles-cmd-2026-05-28.md