Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
9399e67
W-21311839-Add-gRPC-to-ACB-docs-CP
Crispy-Salesforce Feb 24, 2026
00eb123
W-21311839-Fix-format-issues-CP
Crispy-Salesforce Feb 24, 2026
4ba99d6
W-21311839-Replace-quick-actions-with-Create-CP
Crispy-Salesforce Feb 25, 2026
c16c05e
W-21311839-Fix-title-CP
Crispy-Salesforce Feb 25, 2026
f5e1bb9
W-21311839-Fix-title-UI-consistency-CP
Crispy-Salesforce Feb 25, 2026
e987f4d
W-21311839-Add-gRPC-to-docs-CP
Crispy-Salesforce Feb 25, 2026
9ef62b9
W-21311839-Update-API-specs-CP
Crispy-Salesforce Feb 25, 2026
0787858
W-21311839-Add-gRPC-implementation-CP
Crispy-Salesforce Feb 25, 2026
940cd4c
W-21311839-Remove-images-CP
Crispy-Salesforce Feb 25, 2026
314870a
W-21311839-Add-publish-to-Exchange-CP
Crispy-Salesforce Feb 25, 2026
2d15bb5
W-21311839-Address-Dhairya-feedback-CP
Crispy-Salesforce Feb 25, 2026
1157fa9
W-21311839-Address-Eng-feedback-CP
Crispy-Salesforce Feb 25, 2026
83989fe
W-21311839-Add-links-to-gRPC-connector-CP
Crispy-Salesforce Feb 27, 2026
e2d7769
Update des-design-grpc-api-spec.adoc
failup Mar 2, 2026
b79db0e
Update des-design-grpc-api-spec.adoc
failup Mar 2, 2026
d1e1b1c
Update des-design-grpc-api-spec.adoc
failup Mar 2, 2026
6ef0c26
Update des-publish-grpc-api-to-exchange.adoc
failup Mar 2, 2026
2d05e8a
Update imp-implement-grpc-api-spec.adoc
failup Mar 2, 2026
e4ff6a3
Update imp-implement-grpc-api-spec.adoc
failup Mar 2, 2026
1407a98
Update imp-implement-grpc-api-spec.adoc
failup Mar 2, 2026
46b462b
W-21311839-Fix-IDE-name-CP
Crispy-Salesforce Mar 2, 2026
09da2a8
W-21311839-Address-stakeholder-feedback-CP
Crispy-Salesforce Mar 4, 2026
f862ea2
W-21311839-Address-stakeolder-feedback-CP
Crispy-Salesforce Mar 4, 2026
e29b334
W-21311839-Address-stakeholder-feedback-CP
Crispy-Salesforce Mar 4, 2026
d081e0e
W-21311839-Address-stakeholder-feedback-CP
Crispy-Salesforce Mar 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,10 @@
* xref:des-designing-api-specs.adoc[]
** xref:des-create-api-specs.adoc[]
** xref:des-create-asyncapi-api-specs.adoc[]
** xref:des-design-grpc-api-spec.adoc[]
** xref:des-create-api-fragments.adoc[]
** xref:des-publish-api-spec-to-exchange.adoc[]
** xref:des-publish-grpc-api-to-exchange.adoc[]
** xref:des-govern-api.adoc[]
** xref:des-delete-api-projects.adoc[]
Expand Down Expand Up @@ -102,6 +104,7 @@
* xref:imp-implementing-apis.adoc[]
** xref:imp-implement-api-specs.adoc[]
** xref:imp-asyncapi.adoc[]
** xref:imp-implement-grpc-api-spec.adoc[]
** xref:imp-implement-local-apis.adoc[]
** xref:imp-filter-search-results.adoc[]
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/_partials/acb-component-info.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,11 @@ To find information about more connectors, see xref:connectors::introduction/int

Use the Connection Management Configuration Panel to easily configure connections to third-party systems directly from the UI.

In this panel, you can create, edit, delete, and test connections directly within the ACB interface, automatically populate connection fields using metadata provided by the connector, and save and manage connection configurations without switching to the XML view.
In this panel, you can create, edit, delete, and test connections directly within the IDE interface, automatically populate connection fields using metadata provided by the connector, and save and manage connection configurations without switching to the XML view.

To open the configuration panel:

* Click on an existing component, or add a new one.
* Select an existing component, or add a new one.
* Click the *+* icon.
+
This action displays the configuration panel, for example:
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/_partials/acb-reusable-steps.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ When the AsyncAPI feature is available for your organization, the Anypoint Code
//
// tag::start-implementation[]
. From *Quick Actions*, click *Implement an API*:
. From *Create*, click *Implement an API*:
+
image:anypoint-code-builder::implement-api-option-mat.png["*Implement an API* link highlighted in the *Getting Started* section"]
. Complete the *Implement an API Specification* form:
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/_partials/acb-start-desktop.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Ensure this option is checked.
[[acb-menu]]
image::anypoint-code-builder-view.png["MuleSoft icon for Anypoint Code Builder in the activity bar"]

. Check that the IDE loads the <<acb-menu, Anypoint Code Builder menu>> with *Quick Actions* and *Documentation* links.
. Check that the IDE loads the <<acb-menu, Anypoint Code Builder menu>>.

. If you have an Anypoint Platform account running in the EU cloud, change the *Mule: Control Plane* setting to *EU cloud*.
+
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/af-create-agent-network.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ To get started try one of these suggested prompts.

. If you're not logged in, log in to your Anypoint Platform account.
. In Anypoint Code Builder choose on of the following:
* In Quick Actions, select *Create an Agent Network*.
* In Create, select *Create an Agent Network*.
* From the Command Palette, run this command: *MuleSoft: Create an Agent Network Project*.
. Enter a name for the project and select the location to create the project.
. Select the business group associated with the target space you created in xref:anypoint-code-builder::af-get-started.adoc[Get Started with Agent Networks]. The business group you select must be the same business group you selected when you created the target space.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ See the xref:tutorials.adoc[] for details.
include::partial$acb-reusable-steps.adoc[tags="open-ide"]
+
image::anypoint-code-builder-view.png["Anypoint Code Builder icon highlighted in the activity bar"]
. From *Quick Actions*, click *Design an API*:
. From *Create*, click *Design an API*:
+
image::design-api-1.png["*Design an API* link highlighted in the *Quick Actions* section"]
image::design-api-1.png["*Design an API* link highlighted in the *Create* section"]
. Select *Enable this API for Agent Topics and Actions*.
. Complete the *API Specification* form:
+
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/des-create-api-fragments.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ To create an API spec fragment:
include::partial$acb-reusable-steps.adoc[tags="open-ide"]
+
image::anypoint-code-builder-view.png["Anypoint Code Builder icon highlighted in the activity bar"]
. From *Quick Actions*, click *Design an API*:
. From *Create*, click *Design an API*:
+
image::design-api-1.png["*Design an API* link highlighted in the *Quick Actions* section"]
image::design-api-1.png["*Design an API* link highlighted in the *Create* section"]
. In *Design an API*, click the *API Fragment* tab:
+
image:des-api-fragment.png["API Fragment tab on the Design an API page"]
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/des-create-api-specs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ To create an API spec project in Anypoint Code Builder:
include::partial$acb-reusable-steps.adoc[tags="open-ide"]
+
image::anypoint-code-builder-view.png["Anypoint Code Builder icon highlighted in the activity bar"]
. From *Quick Actions*, click *Design an API*:
. From *Create*, click *Design an API*:
+
image::design-api-1.png["*Design an API* link highlighted in the *Quick Actions* section"]
image::design-api-1.png["*Design an API* link highlighted in the *Create* section"]

. Complete the *API Specification* form:
+
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/des-create-asyncapi-api-specs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ To create and design an AsyncAPI spec project in Anypoint Code Builder:
include::partial$acb-reusable-steps.adoc[tags="open-ide"]
+
image::anypoint-code-builder-view.png["Anypoint Code Builder icon highlighted in the activity bar"]
. From *Quick Actions*, click *Design an API*:
. From *Create*, click *Design an API*:
+
image::design-api-1.png["*Design an API* link highlighted in the *Quick Actions* section"]
image::design-api-1.png["*Design an API* link highlighted in the *Create* section"]

. Complete the *API Specification* form:
+
Expand Down
151 changes: 151 additions & 0 deletions modules/ROOT/pages/des-design-grpc-api-spec.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
= Designing a gRPC API Specification with Anypoint Code Builder
:page-deployment-options: cloud-ide, desktop-ide

include::reuse::partial$beta-banner.adoc[tag="anypoint-code-builder"]

Anypoint Code Builder supports designing gRPC API specifications using Protocol Buffers (Protobuf 3). Create and edit `.proto` files, import reusable Protobuf libraries from Anypoint Exchange, and use syntax highlighting and validation.

Use the Protocol Buffers 3 (Protobuf 3) specification language to design gRPC APIs. gRPC uses HTTP/2 and supports four RPC patterns:

* Unary
* Client streaming
* Server streaming
* Bidirectional streaming
You author service and message definitions in `.proto` files and can reuse shared types by importing Protobuf fragments (libraries) from Exchange.

== Before You Begin

* xref:start-acb.adoc[].
* Understand the basics of gRPC and Protocol Buffers (Protobuf 3). See https://grpc.io/docs/what-is-grpc/introduction/[Introduction to gRPC] and the https://protobuf.dev/programming-guide/proto3/[Protocol Buffers 3 Language Guide].
* Have some familiarity with xref:access-management::business-groups.adoc[].

== Create a New gRPC API Specification Project

To create a gRPC API spec project in Anypoint Code Builder:

include::partial$acb-reusable-steps.adoc[tags="open-ide"]

. From *Create*, click *Design an API*:
. Complete the *API Specification* form:
+
[%header,cols="20a,60a"]
|===
| Field Name | Field Value

| *Project Name* | Unique name for your project.

This name is used as the API spec title in Exchange, the name of the spec file, and the name of the project's root directory.

include::partial$acb-reusable-steps.adoc[tags="no-project-name-reuse"]
| *Project Location* | Your home directory or another directory you create.

See xref:start-add-folders.adoc[].

include::partial$acb-reusable-steps.adoc[tags="proj-directory-warn"]
| *API Type* | The type of API spec to create.

Select *gRPC API* to create a gRPC project.

| *API Specification Language* | The language for the API specification.

Select *Protobuf 3* for gRPC API projects.
|===
. Click *Create Project*.
+
If prompted, trust the authors of the files in the folder.
+
When the project is ready, the API project opens with a default `.proto` file in the Editor view.
+
. Continue designing your gRPC API spec.
+
As you enter elements, use xref:start-discover-ui.adoc#auto-complete[auto-complete] (or press Ctrl+Space) to display available options within the context.

== Organize gRPC API Projects and Dependencies

A new gRPC API project includes a root `.proto` file (for example, `main.proto` or a file named after your project) that defines your service and messages.

You edit the main `.proto` file to define `service`, `rpc`, and `message` blocks. To reuse shared types, add new `.proto` files in the same project and import them. You can also add a Protobuf fragment as a dependency from Exchange and import it in your specification.

== Publish a gRPC Fragment to Exchange

You can publish reusable `.proto` definitions as a fragment to Anypoint Exchange so other gRPC API specifications can import them as dependencies.

A fragment contains shared definitions such as `message` or `enum` blocks.

=== Publish the Fragment

To publish a gRPC fragment to Exchange:

. Ensure that you're logged in to Anypoint Platform.
. Open the project that contains your reusable `.proto` files.
. From the IDE, select the publish action.
. When prompted:
+
* Select the business group.
* Provide the asset name and version.
* Add any required metadata.
. Confirm the publication.

After publishing, the fragment appears in Exchange as an API Fragment asset and can be added as a dependency to other gRPC API specification projects.

To use the fragment in another gRPC API specification:

. Add the fragment as a dependency from Exchange.
. Import the corresponding `.proto` file in your main specification.
. Validate that all references resolve correctly.

== Import a Protobuf Library from Anypoint Exchange

You can import reusable Protobuf libraries (fragments) from Anypoint Exchange and add them as dependencies to your gRPC API project. You can reuse messages and services across multiple specifications.

To use a Protobuf fragment published to Exchange:

. Ensure you're logged in to Anypoint Platform.
. Open your gRPC API project.
. Open the Command Palette (Cmd+Shift+P on macOS or Ctrl+Shift+P on Windows).
. Select *MuleSoft: Add Fragment dependency from Exchange*.
. Search for the Protobuf fragment you need and select the version to add.
. After the dependency is added, the library is available under the project.
. In your main `.proto` file, use `import` to reference the library's package and message or service definitions. For example:
+
[source,protobuf]
----
syntax = "proto3";
import "path/to/library.proto";
service MyService {
rpc GetOrder(OrderRequest) returns (OrderResponse);
}
----
. Save the spec. Anypoint Code Builder resolves the dependency and validates references. You can reuse messages and services from the imported library across your gRPC specs.

== Define Technical Details for gRPC Specifications

=== Declare Communication Patterns for gRPC Services

Anypoint Code Builder and Mule runtime support all four gRPC RPC patterns:

* **Unary** – Single request, single response.
* **Client streaming** – Client sends a stream of messages; server returns a single response.
* **Server streaming** – Client sends a single request; server returns a stream of messages.
* **Bidirectional streaming** – Both client and server send and receive streams of messages.

Define these in your `.proto` file using the appropriate `rpc` declarations and stream modifiers.

=== Verify Specification Accuracy with Syntax Validation

Anypoint Code Builder provides syntax highlighting and validation for Protobuf 3 specifications. Validation is performed using the API Modeling Framework (AMF) parser, so you get inline feedback and error reporting as you edit your `.proto` files. Use the editor and the xref:start-open-output-panel.adoc[output panel] to track validation and scaffolding status.

== See Also

// TODO: Include a link to gRPC Connector docs.
* xref:start-acb.adoc[]
* xref:imp-implement-grpc-api-spec.adoc[]
* xref:des-designing-api-specs.adoc[]
* xref:des-create-api-specs.adoc[]
* xref:des-create-api-fragments.adoc[]
* xref:des-publish-grpc-api-to-exchange.adoc[]
* xref:des-publish-api-spec-to-exchange.adoc[]
* xref:start-discover-ui.adoc#use-autocomplete[Use Auto-Complete in the Editors]
5 changes: 5 additions & 0 deletions modules/ROOT/pages/des-designing-api-specs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ Supported AsyncAPI versions are:
* AsyncAPI 2.6 (JSON)
* AsyncAPI 2.6 (YAML)

For gRPC API specifications, Anypoint Code Builder supports Protocol Buffers (Protobuf 3). See xref:des-design-grpc-api-spec.adoc[].

[[supported-fragment-languages]]
== Supported Specification Languages for API Fragments

Expand All @@ -55,6 +57,9 @@ See the RAML 1.0 specification for descriptions of these types:
--
* JSON Schema
* Avro 1.9.0 schema
* gRPC fragments (Protobuf 3)
+
Reusable Protobuf definitions (for example, `message` or `enum` types) published as API fragment assets. See xref:des-design-grpc-api-spec.adoc#publish-a-grpc-fragment-to-exchange[Publish a gRPC Fragment to Exchange].

[[resource-reqs]]
== Minimum Resource Requirements for the Desktop IDE
Expand Down
1 change: 1 addition & 0 deletions modules/ROOT/pages/des-publish-api-spec-to-exchange.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -146,5 +146,6 @@ image::des-graphql-asset-exchange.png["GraphQL API spec on Exchange]

== See Also

* xref:des-publish-grpc-api-to-exchange.adoc[]
* xref:des-govern-api.adoc[]
* xref:ai-enabling-api-project-topic-center.adoc[]
71 changes: 71 additions & 0 deletions modules/ROOT/pages/des-publish-grpc-api-to-exchange.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
= Publishing Your gRPC API to Exchange
:page-deployment-options: cloud-ide, desktop-ide

include::reuse::partial$beta-banner.adoc[tag="anypoint-code-builder"]

Publish your gRPC API specification or Protobuf library (fragment) to Anypoint Exchange so that other team members can discover, reuse, and implement it.

In Exchange, published gRPC API projects appear as assets of type *gRPC API*. Published Protobuf libraries (reusable fragments) appear as assets of type *API Fragment*.

[[prereqs]]
== Before You Begin

* xref:des-design-grpc-api-spec.adoc[Design a gRPC API specification] in Anypoint Code Builder, or create a Protobuf library project for reusable types and services.
* xref:start-acb.adoc[Set up and access the web or desktop IDE].
* Have familiarity with xref:access-management::business-groups.adoc[business groups]. When you publish to Exchange from the IDE, you select or confirm the business group for the asset.

include::partial$acb-reusable-steps.adoc[tags="prereq-business-groups"]

[[publish-grpc-spec]]
== Publish a gRPC API Project to Exchange

To publish your gRPC API project (or Protobuf library project) to Exchange:

. Log in to your Anypoint Platform account.
. In *Explorer*, open your gRPC API project and click the *Publish API Project to Exchange* icon.
+
image::icon-publish-to-exchange.png["Publish API Project to Exchange icon"]
+
You can also right-click the API project in Explorer and select *API* > *Publish API Project to Exchange*.
+
Alternatively, open the xref:start-use-command-palette.adoc[Command Palette] and run:
+
[source,command]
----
MuleSoft: Publish API Project to Exchange
----
. If prompted, click *Allow* and follow the prompts to sign in to Anypoint Platform.
. Confirm or change each item in *Publish API Project to Exchange*:
* *Asset Version* – For example, `1.0.0` for a first publish.
* *API Version* – Optional for API fragments (Protobuf libraries).
* *Business Group* – The business group where the asset is published.
. Optionally, expand *Project Metadata* and update asset name, tags, categories, or other metadata. Click *Apply* after making changes.
. Optionally, in the banner click *Sync centralized governance rulesets and run validation* to validate the project against applied rulesets. You must be logged in and have a business group defined in the project metadata.
+
image::des-publish-api-project.png["Publish API Project to Exchange form with banner to sync centralized rulesets"]
. Click *Publish*.
+
The IDE builds the project and publishes the asset to Exchange. When publishing is complete, you see a message that the API specification (or fragment) successfully published to Exchange.
+
If the project has validation or build errors, fix them before publishing. Check the *Problems* tab and the xref:start-open-output-panel.adoc[output panel] for details.
. Click *View Asset* to open the published asset in Exchange.
. When prompted to implement the API, choose *Yes* to scaffold the gRPC specification into a new project, or *No* to skip. See xref:imp-implement-grpc-api-spec.adoc[] for implementing a gRPC API spec.

[[locate-grpc-asset]]
== Locate Your gRPC API in Exchange

After publishing, you can find your gRPC API or Protobuf library in Anypoint Exchange:

. Log in to Anypoint Platform and open Anypoint Exchange (see xref:des-publish-api-spec-to-exchange.adoc#locate-api[Locate Your API in Exchange] for links).
. Search or browse for the asset by name. gRPC API projects appear as assets of type *gRPC API*. Protobuf library projects appear under the appropriate fragment type.

Other developers can discover the asset, add it as a dependency for implementation, or import it as a Protobuf library into their gRPC API design projects.

== See Also

// TODO: Include a link to gRPC Connector docs.
* xref:des-design-grpc-api-spec.adoc[]
* xref:des-publish-api-spec-to-exchange.adoc[]
* xref:imp-implement-grpc-api-spec.adoc[]
* xref:des-govern-api.adoc[]
* xref:access-management::business-groups.adoc[]
7 changes: 5 additions & 2 deletions modules/ROOT/pages/imp-filter-search-results.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ To search for an API using the search filters:
include::partial$acb-reusable-steps.adoc[tags="open-ide"]
+
image::anypoint-code-builder-view.png["Anypoint Code Builder icon highlighted in the activity bar"]
. From *Quick Actions*, click *Implement an API*:
. From *Create*, click *Implement an API*:
+
image::implement-api-option-mat.png["Implement an API in the Quick Actions menu"]
image::implement-api-option-mat.png["Implement an API in the Create menu"]
. Select *Show Filters* to display the search filters:
+
image::imp-api-filters.png["Implement API specification screen with the Show filters label highlighted"]
Expand All @@ -40,6 +40,9 @@ GraphQL enables you to query an API that supports this language in a much more f
** REST APIs
+
RAML or OAS files that specify APIs referenced by an HTTP Request connector to expose metadata.
** gRPC API
+
Protocol Buffers (Protobuf) specifications that define gRPC services and methods. Select this type to narrow results when implementing a gRPC API from Exchange.
+
* Category/Industry
+
Expand Down
Loading