You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3754328
Browse filesBrowse the repository at this point in the historyBrowse files
docs: correct verified URL output and apply npm/python review feedback
Fixes found by executing the snippets, plus the review comments from the
reference PRs (cloudinary_npm#742, pycloudinary#449) that still applied here.
Corrections caught by running the code:
- transform-and-deliver-video.md showed a /v1/ segment on a non-nested
public_id in four places. The image page documents the rule correctly —
/v1/ appears only when the public_id contains a slash — so the two pages
contradicted each other. All four now match generated output exactly.
- getenv() returns false when unset and fromCloudinaryUrl() requires a
string, so the no-credentials path raised a TypeError instead of the SDK's
ConfigurationException. troubleshoot-errors.php leaked a PHP signature
dump; it now matches the other eleven examples.
- Documented URLs omitted the ?_a= analytics parameter the SDK adds by
default, so actual output did not match the page. Documented what it is
and how to disable it.
Review feedback applied:
- Exception structure: ApiError is a bare Exception, so getCode() is 0 and
there is no structured error body. Added the HTTP status column and a
section stating that the exception class is the only machine-readable
signal.
- 423 (Processing) is unmapped in BaseApiClient and surfaces as GeneralError
carrying the raw response body, so it cannot be caught by type.
Documented with a message-matching retry.
- Moderation is not access control: whether pending, approved, or rejected
assets are deliverable is product-environment configurable, and the Media
Library and CDN are separate surfaces.
- Moderation add-ons need account enablement and sometimes provider terms
acceptance — neither of which an agent can do.
- Upload size limits are per product environment; raising chunk_size does
not raise the ceiling. Added mitigations and an upgrade path.
- Prefer asset_id for stored references; links to the search expression and
transformation references; concrete one-hour signature lifetime; signed
parameters must match what the client posts.
Also tagged two illustrative blocks as plain rather than php: conflicting
use statements and a bare class name are not runnable snippets and would
otherwise be false positives for a snippet parser.
Verified: 56 php blocks across docs/ parse clean, examples lint with zero
phpcs errors, all twelve exit 1 with a readable message when credentials
are absent, unit suite 375/375, all internal links and anchors resolve.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|Track typed, validated business data per asset — owner, campaign, licence expiry — and search on it|`$cloudinary->adminApi()->addMetadataField()`|[Use structured metadata](use-structured-metadata.md)|
52
52
| Bundle assets into an archive |`$cloudinary->uploadApi()->createArchive()`|[Search and manage assets](search-and-manage-assets.md)|
0 commit comments