Skip to content

Commit

Permalink
Merge pull request #1055 from jacobbednarz/clarify-api-stability-requ…
Browse files Browse the repository at this point in the history
…irements
  • Loading branch information
jacobbednarz committed Aug 19, 2022
2 parents ce1be2e + e39278e commit ebb2785
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions docs/public-api-documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Why is my PR labelled with `workflow/pending-public-api`?

To ensure the public SDKs (including the [Cloudflare Terraform Provider]) are
only using stable and intentionally exposed endpoints, we require that all API
functionality is backed by public documentation. This can either be
api.cloudflare.com or developers.cloudflare.com depending on the delivery medium.

## But, wrangler/cloudflared/other project doesn't require public documentation?

On occasion, Cloudflare teams release functionality or tooling specific to the
systems they are responsible for. [Wrangler] and [cloudflared] are two prominent
examples of this. In these situations, the teams may choose to use unstable or
undocumented endpoints as they are able to maintain both internal and external
compatibility for these tools should something need to change without notice or
a deprecation period.

Unfortunately, the SDKs are not in the same position and cannot make the same
guarantees externally due to being an interface for external integrations; not
an abstraction of the functionality. By only accepting documented API endpoints
into the SDKs, we establish an API contract with the service teams that ensures
consumers have a reliable and consistent experience when using them. Should an
API contract be broken, or need fixing, the service team will be responsible to
maintain it in such a time that a deprecation notice is issued and integrations
have a migration period.

[cloudflare terraform provider]: https://github.com/cloudflare/terraform-provider-cloudflare/
[wrangler]: https://github.com/cloudflare/wrangler2
[cloudflared]: https://github.com/cloudflare/cloudflared

0 comments on commit ebb2785

Please sign in to comment.