Skip to content

W-23907611 docs: draft Policy Write documentation - #548

Open
luanamulesoft wants to merge 10 commits into
latestfrom
W-23907611-document-policy-write
Open

W-23907611 docs: draft Policy Write documentation#548
luanamulesoft wants to merge 10 commits into
latestfrom
W-23907611-document-policy-write

Conversation

@luanamulesoft

Copy link
Copy Markdown
Contributor

Summary

Drafts documentation for the Policy Write initiative (MS2026-08-R2 / Dreamforce), covering all 8 in-scope user stories. Single PR for both affected exp- topics.

  • exp-governance-policy-library-apply.adoc — rewritten from a fully commented-out draft into an active topic: apply a universal policy template (F1), edit native policies with the two-tier schema/read-only fallback (F2), delete with confirmation (F3), enable/disable (F4), permissions (F5), the in-progress workflow lock (F7), and the read-only out-of-scope state (F6).
  • exp-services-view-details.adoc — Policies-tab section now notes native-policy management actions and read-only out-of-scope policies, cross-linked to the apply/manage topic.

Grounding

Content is grounded in the mulesoft-omni-app UI code. This is a draft — details that could not be verified in code are flagged inline with TODO(W-23907611) comments and must be confirmed with the PM before the DRAFT banner is removed and the topic is published:

  1. The universal template list + per-gateway native mappings (APIM-owned, not in Omni code).
  2. Which feature flags are ON for GA, per gateway.
  3. The enable/disable gateway support matrix.
  4. Human-readable required permission/role names.
  5. Whether applying policies from the API Instance page is in scope for this release.

AWS write is out of scope for this release.

References

🤖 Generated with Claude Code

Rewrite exp-governance-policy-library-apply.adoc from a fully commented-out
draft into an active topic covering the Policy Write scope (MS2026-08-R2):
apply a universal policy template, and edit/delete/enable-disable native
policies, plus the in-progress workflow lock and read-only out-of-scope state.

Update the Policies-tab section of exp-services-view-details.adoc to note the
new native-policy management actions and read-only out-of-scope policies, and
cross-link to the apply/manage topic.

Content is grounded in the mulesoft-omni-app UI code. Details that could not be
verified in code (universal template list + per-gateway native mappings, GA
feature flags, enable/disable support matrix, permission role names, and the
API Instance page apply entry point) are marked with TODO(W-23907611) comments
for PM confirmation before publishing. Gap analysis: Policy Write —
Documentation Gap Report (2026-08-18).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@luanamulesoft
luanamulesoft requested a review from a team as a code owner August 18, 2026 13:24
luanamulesoft and others added 9 commits August 18, 2026 16:53
…-policy-write

# Conflicts:
#	modules/ROOT/pages/exp-governance-policy-library-apply.adoc
Add coverage for the Activity log tab surfaced by the two additional scope
PRDs (Policy Write / Unified Policy Catalog) and verified in code
(ActivitiesTab.tsx, activitiesTab i18n). Applies are asynchronous and tracked
(Apply/Update/Toggle/Remove; Running/Completed/Failed). Cross-linked from the
apply flow and the instance Policies tab. Left as DRAFT with a TODO on the
feature-flag/external-provider gating and no actor field (not a full audit trail).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ections

Consolidate the external/universal policies documentation from PR 556 into
this branch, and apply the SME review corrections from PR 556:

- Universal-derived native policies are editable, not view-only
  (glossary, exp-policies-universal, exp-policies-apply-manage)
- Anypoint gateways are Omni (Flex) and Mule; fix gateway-type wording
- Instance locking is Apigee/Azure-wide; Kong locks only the one policy
- Policy naming is an Apigee-only feature
- Acknowledge the additional supported native Kong policies alongside the
  universal use cases (soften absolute "view-only" statements)
- Apigee roles are one option, not required (reword)

Flag the internal-error edit-restriction case inline for PM/eng.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Having permissions is necessary but not sufficient to edit a policy. Anypoint supports editing the curated set of policies that back the universal use cases, plus several additional native Kong policies (see xref:exp-policies-universal.adoc[]); other recognized policies are view-only. Native policies created from a universal use case are editable like any other supported native policy. When *Edit Configuration* is unavailable, the UI explains why. Common reasons include:

* Anypoint doesn't recognize the policy's template, or doesn't yet support managing policies with its schema.
* The policy's configuration doesn't match its expected schema. To resolve this issue, open a support case.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sparshagarwal-nonemu, can you confirm if we should document it or remove it?

A lighter-weight instance deployment that does not route traffic through Omni Gateway. Choose unmanaged instances when a full managed path does not match your operating model.

Universal (canonical) policy::
A provider-agnostic policy you configure once and apply across a mix of gateway providers. Anypoint translates a universal policy into each provider's native policy. Universal is a creation experience, not a managed entity: after you apply it, only native policies exist. Those native policies behave like any other native policy on the provider. You can edit, remove, enable, or disable them where the provider supports those actions. In the UI, universal policies carry a *Universal* badge.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"Once the universal policy is applied as native, the native is not read-only. It can be editable or deleteable"

= Applying and Managing Policies
:keywords: apply policy, edit policy, remove policy, enable policy, disable policy, external gateways, api manager, anypoint platform

Apply, edit, enable, disable, and remove policies on an API instance from the *Policies* tab in *Portfolio*. These actions work on Anypoint gateways (Omni and Mule), and on external providers such as Google Apigee, Azure API Management, and Kong Gateway, subject to per-provider support. See xref:exp-policies-provider-reference.adoc[].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"Anypoint gateways can be Omni (aka Flex) or Mule Gateways. Both apply here."

* *Enable Policy* / *Disable Policy* toggle a policy on or off. Apigee and Azure API Management have no native enable/disable state, so these actions aren't available there. See xref:exp-policies-provider-reference.adoc#supported-actions-by-provider[Supported Actions by Provider].
* *Remove Policy* detaches the policy from the instance.

While an operation is in progress, the provider locks further changes until it finishes. The scope of that lock differs by provider: Apigee and Azure API Management lock the entire instance, so no other policy operation on that instance can start until the current one completes; Kong Gateway locks only the policy being changed, so you can work with other policies on the same instance at the same time. You can track progress in the *Activity log*. See xref:exp-policies-provider-reference.adoc#instance-locking-during-operations[Instance Locking During Operations].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"This is true just for APIGee and Microsoft Azure"

[[policy-naming-and-identity]]
== Policy Naming and Identity

Policy naming applies to Apigee only. Other providers don't use policy names, and you aren't required to enter one. On Apigee, the name is the policy's unique identity on the gateway, not just a label:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"The policy name is only a APIGee feature, other providers do not use policy names and the users are not required add a name to the policy"


== How Policy Operations Work

Every policy change on an external provider, such as apply, edit, enable, disable, or remove, runs asynchronously: Anypoint accepts the request and performs the work on the provider in the background. Because an accepted request isn't the same as an applied policy, confirm the outcome in the Activity log tab for the API instance. See xref:exp-policies-activity-log.adoc[].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this feedback:
"Redundant? I already read this previously? I'd rather have more than have less, but again this paragraph is very similar to the one in the activity log section"
I rewrote the paragraph so it's not exactly the same, but left it as an introduction, as this is the Overview page.

* `apigee.deployments.list`
* `apigee.deployments.create`

To get these permissions, you can use one of these predefined Apigee roles:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"Change use one of these predefined Apigee roles to one of these predefined Apigee roles can be used (or similar)."

* IP Allowlist
* JWT Validation

These are the primary policies you can create and edit across providers. Anypoint also supports several additional native Kong policies. See xref:exp-policies-provider-reference.adoc#supported-policies-and-native-equivalents[Supported Policies and Native Equivalents]. Other recognized policies are view-only. See xref:exp-policies-apply-manage.adoc#policy-edit-restrictions[Policy Edit Restrictions].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"Every other recognized policy is view-only
Not entirely true, we also have a bunch of other Kong policies (already mentioned before in the docs)"


Use a universal policy to implement a use case across multiple native gateways from a single starting point. Only native policies remain on each provider. No separate universal object exists, so you can't edit or remove it.

After creation, the resulting native policies behave like any other native policy on each provider. From the *Policies* tab, you can edit, remove, enable, or disable them where the provider supports those actions. There is no universal object to manage separately.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appplied feedback:
"Because the resulting native policies came from a universal template, they display as view-only.
Not true. In fact, the opposite should be true. Native policies coming from universal application most generally would be editable. I would just not mention the view-only part."


|Scope
|Multi-provider, applied to the instances you select.
|Anypoint native (Omni and Mule), applied automatically by matching rules.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied feedback:
"Anypoint and Mule.

Same thing as before. Anypoint is not a gateway type, Omni (aka Flex) is. You can say Anypoint native (Omni and Mule) or similar instead"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants