# mulesoft API Experience Hub - Full Documentation --- product: API Experience Hub --- # Accessing an API Portal > For the full documentation index, see: https://docs.mulesoft.com/llms.txt Users can sign up to get access to a portal when the portal administrator enables self-registration. The following is an example portal: The signup process includes the following steps: 1. Enter the URL of the portal in a browser window. 2. Enter your first name, last name, and email address. 3. Click **Sign Up**. All self-registrations are automatically approved. Ensure that the link to the portal is only accessible to trusted parties. 4. From the portal, click **Log in** and enter your username and password. # Advanced Styling with CSS API Experience Hub offers advanced styling functionality with editable community site Cascading Style Sheets (CSS) for API Experience Hub common components. The following sections summarize the available options. For detailed information, refer to [Override Template Elements with Custom CSS](https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/communities_dev_customize_css.htm) in the Experience Cloud Developer Guide. ## [](#edit-the-css)Edit the CSS 1. In the **Builder**, click the paintbrush icon to open the **Theme** menu. 2. Click the drop-down arrow of the menu and click **Edit CSS**. 3. Edit the CSS file in the **Edit CSS** dialog box. 4. When you’re finished with your changes, click **Save**. ## [](#example)Example You can use CSS to change the colors of the API Experience Hub Theme: ```css search-bar-container { background: #342b4a!important; } ``` ## [](#css-classes)CSS Classes ### [](#api-card)API Card This component is in the API carousel and API catalog. The API card shows basic information about the asset: name, description, icon, type, and last updated date.
| Class | Description |
|---|---|
|
Main container for asset card. |
|
Asset icon container. |
|
Asset card type text. For example, HTTP-API, REST-API, or SOAP-API. |
|
Asset card name text. |
|
Asset card description text. |
|
Asset card last updated text. |
Class |
Description |
|
Main carousel container. |
|
Assets carousel title. |
|
Assets carousel subtitle. |
|
View all assets link. |
|
Left carousel button. |
|
Right carousel button. |
|
Container of the bottom navigation dots. |
|
Navigation dot. |
|
Selected navigation dot. |
Class |
Description |
|
Main catalog container. This contains the header with filters and body with asset cards. |
|
Header catalog container. This contains the filters. |
|
Search input container. |
|
Container for asset type filter and clear all button in the right. |
|
Container for asset type filter. |
|
Clear all button. |
|
Body container with all the asset cards. |
Class |
Description |
|
Application name. |
|
Application description. |
|
Application URL container. |
|
Application URL label. |
|
Container for Client Credentials, Redirect URIs, and Grant types cards. |
|
Card container. |
|
Card title. |
|
Card content. |
|
Client credentials card: Client ID and Client Secret labels. |
|
Client credentials card: Client ID and Client Secret values. |
|
Redirect URIs card: application URI. |
|
Grant type card: application grant type. |
Class |
Description |
|
Application listing search input container. |
|
Applications table container. |
|
Application name table header label. |
|
Application description table header label. |
|
Application credentials table header label. |
|
Each table element that contains the application row. |
|
Application name. |
|
Application description. |
|
View credentials icon. |
|
View credentials label. |
|
Credentials popup container. |
|
Client ID and client secret label. |
|
Application client ID and secret code. |
Class |
Description |
|
Principal container for the asset documentation viewer. |
|
Spinner container that’s executed while the documentation request gets information since the last time listed in the asset detail header. |
|
Spinner that’s executed while the documentation request gets information since the last time listed in the asset detail header. |
|
Container for asset documentation viewer pages container. This container can be used with or without the navigation bar. |
|
Navigation bar for showing asset documentation pages. |
|
Spinner container that is executed when the page content is requested from Exchange. |
|
Spinner that is executed while the page content is requested from Exchange. |
|
Container that displays when request content from Exchange fails. View c-base-error. |
|
Container that displays when the asset has only one page. In this case, the navigation bar doesn’t display. |
|
Div element where markdown is rendered. |
Class |
Description |
|
Principal container for asset detail header. |
|
Spinner container that is executed when page is loaded. |
|
Collapsible button for asset information. |
|
Background color of asset icon. assetType: rest-api evented-api http-api soap-api |
|
Border color of asset icon. assetType: rest-api evented-api http-api soap-api |
|
Title of asset. |
|
Download spec button. |
|
Modal with options that opens when the user clicks Download. |
|
Asset type. |
|
Contact name. |
|
Contact email. |
|
Description of asset. |
|
Spinner container that is executed when user changes the version selected. |
|
Title for action in content version. Asset Version, Version state, Instances, and Clients. Apply for all elements. |
|
Body for action in content version. Asset Version, Version state, Instances, and Clients. Apply for all elements. |
|
Show status of an asset. |
|
Number of instances for an asset. |
|
Number of contracts for an asset. |
|
Container to select a version for an asset. View c-base-title-selector |
Class |
Description |
|
Main container for component. |
|
Element that contains main icon. |
|
Title for an error or empty state message. |
|
Subtitle for an error or empty state message. |
|
In some errors, it shows the request ID. |
|
In some errors, it shows a button to execute the failed action again. |
Class |
Description |
|
Container for the request access button. |
|
Request access button in the asset detail header. |
|
Label for the request access button. |
|
Container for request access modal content. |
|
Container for request access modal footer. |
|
Label of the request access modal form inputs. |
|
Subtitle of the request access modal form inputs. |
|
Content of the request access modal form inputs. |
|
Container for the new application form. |
|
Create new application title. |
|
New application input name. |
|
New application input description. |
|
New application URL input. |
|
New application redirect URI input. |
|
Cancel and request access modal buttons. |
|
Request access modal button. |
| Field | Value |
|---|---|
App integration name | Enter a name for the app. |
Grant type | Select Authorization Code. |
Assignments | Select Limit access to selected groups. |
Selected group(s) | Enter the name of the group who must have access to the application. |
| Field | Value |
|---|---|
Provider Type | OpenID Connect |
Name | Enter a name for the provider. |
Consumer Key | Enter the client ID from the identity provider. |
Consumer Secret | Enter the client secret from the identity provider. |
Authorize Endpoint URL | |
Token Endpoint URL | |
User Info Endpoint URL | |
Default Scopes | profile openid email groups |
Registration handler | AEHPortalRegistrationHandler |
Execute Registration As | Select an administrator user. |
| Field | Value |
|---|---|
Display name | anypoint_idp_id |
Value name | anypoint_idp_id |
| Field | Value |
|---|---|
Display name | anypoint_username |
Value name | anypoint_username |
| Field | Value |
|---|---|
Single Sign-On URL | Enter the URL for the portal login. |
Use this for Recipient URL and Destination URL | Select this option. |
Audience URI (SP Entity ID) | Enter https with the Salesforce domain for example, |
Name ID format | EmailAddress |
Application username | Okta username |
Update application username on | Create and update |
| Name | Name format | Value |
|---|---|---|
first_name | Unspecified | user.firstName |
last_name | Unspecified | user.lastName |
Unspecified | user.email | |
groups | Unspecified | (",", getFilteredGroups({"00gdkat3p5RCvkQQC5d7", "00gdjgk337kYDxtE35d7"}, "group.name", 40)) |
| Field | Value |
|---|---|
Issuer | Match the Identity Provider Issuer from the View SAML setup instructions. |
Entity ID | Match the Audience Restriction you set in the application. |
Identity Provider Certificate | Upload the certificate previously downloaded from the View SAML setup instructions. |
SAML Identity Type | Assertion contains the Federation ID from the user object. |
SAML Identity Location | Identity is in the NameIdentified element of the Subject statement. |
Identity Provider Login URL | Match the Identity Provider Single Sign-On URL from the View SAML setup instructions. |
Custom Logout URL | Okta URL |
User Provisioning | Enabled |
User Provisioning Type | Custom SAML JIT with Apex Handler |
SAML JIT Handler | AEHPortalRegistrationHandler |
Execute Handler As | Select a system administrator. |
| Field | Value |
|---|---|
Identifier (Entity ID) |
|
Reply URL (Assertion Consumer Service URL) |
|
Sign on URL |
|
Logout Url (Optional) |
|
| Field | Value |
|---|---|
Name | firstName |
Source attribute | user.givenname |
| Field | Value |
|---|---|
Name | lastName |
Source attribute | user.surname |
| Field | Value |
|---|---|
Name | |
Source attribute | user.mail |
| Field | Value |
|---|---|
Name | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name |
Source attribute | user.userprincipalname |
| Field | Value |
|---|---|
Name | anypoint_idp_id |
Source attribute | "<identity_provider_id>" The ID must be in quotes. |
| Field | Value |
|---|---|
Name | anypoint_username |
Source attribute | Define an attribute for example, ExtractMailPrefix (user.mail) |
| Field | Value |
|---|---|
Transformation | ExtractMailPrefix() |
Parameter 1 | Attribute |
Attribute name | user.mail |
| Field | Value |
|---|---|
Name | Enter a name. |
API Name | Enter a name. |
Entity ID | Enter the value from the Azure Enterprise application’s Identifier (Entity ID) field. For example, |
SAML Identity Type | Assertion contains the Federation ID from the User object. |
Just-in-time User Provisioning | Enabled |
User Provisioning Type | SAML JIT with Apex handler |
SAML JIT Handler | AEHPortalRegistrationHandler |
Execute Handler As | Select a system administrator. |
| Field | Value |
|---|---|
Group Name | Enter |
Provider Name | The name of the corresponding Salesforce identity provider. |
Type | Member. |
| Field | Expected Claims |
|---|---|
First Name | given_name, first_name, firstname, and firstName |
Last Name | family_name, last_name, lastname, and lastName |
email, email_address, and emailAddress | |
Username | preferred_username, federation_identifier, email, sub, and NameId |
Groups | groups |
| Field | Description | Expected Values |
|---|---|---|
Anypoint Idp Id | Map identities to the specific identity provider in Anypoint Platform. | anypoint_idp_id |
Anypoint Username | Explicitly specify the Anypoint Platform user if the user’s identity exists in Anypoint Platform, but the username is different than the Salesforce user. | anypoint_username |
Role/Permission/Profile | Description | Actions |
Salesforce System Administrator | This profile must be assigned to the user who performs the Salesforce linking process. |
|
Organization administrator in the main organization | API Experience Hub is business group agnostic which means that the portal belongs to the main organization only and the admin can create portals across business groups. The organization administrator inherits all API Experience Hub permissions, enabling them to perform any available operation within the platform. |
|
API Experience Hub Administrator | The admin inherits all of the Organization Administrator permissions necessary to create your portal. |
|
API Experience Hub Portal Administrator | Currently, can manage only one API portal in the organization |
|
Permission | Description | Actions |
Exchange Viewers | Assign this permission to the Organization Administrator or the API Experience Hub Administrator who performs the Salesforce linking process. Users with this permission can’t add new assets, edit asset portal content, or share an asset with another user. |
|
Required Permissions | Grants the Ability to | Notes |
API Experience Hub Administrator | Enabling and disabling an identity provider in the API Experience Hub UI. | |
Salesforce System Administrator | Configures the identity provider in Salesforce. | |
Anypoint Organization Administrator | Maps the identity provider groups with the API Experience Hub profiles using the group mapping functionality of Access Management teams. | |
Security team | Configures the identity provider with the required user groups and applications. | Your organization’s security team and the Salesforce System Administrator, who manage the identity provider system in an organization, configure the proper login option in Salesforce. The security team and the Org Admin in the main organization can configure the same identity provider option in Anypoint Platform, if required. The security team and the Org Admin in the main organization configure the mapping between Salesforce and Anypoint Platform. Access Management provides the functionality of adding group mappings for external identity providers using teams. After the group mappings are properly configured, users who log in to the portal are added automatically to the out-of-the-box profile that they belong to. The default identity provider is provided to create identities in Anypoint Platform for Salesforce users. |
Permission/Permission Set | Description | Actions |
API Experience Hub Users Approver | A granular permission that enables a user to perform specific tasks to manage users. |
|
AEH_Anypoint permission set | A permission set that contains the minimum permissions required for a Salesforce user to perform the linking process. |
|
User Profile | Description | Actions |
Guest | This user’s profile is anonymous and isn’t logged in the portal. |
|
Member | This is a registered user who can log in to a portal. |
|
Property | Details |
Feed Type |
|
Record ID | Leave this field blank if you pick the Discussion or My Feed options in Feed Type. Typically, this field populates the feed item ID automatically when the page loads. |
Default Filter | Select the default filter for feed entries that you want your site members to see. |
Post Style | Choose to expand or collapse post comments by default. |
Let members search feeds | Choose to let site members search an individual feed. |
Let members sort feeds | Choose to let site members sort a feed. When sorting is enabled, members can sort a feed by the latest posts or most recent activity. |
Property | Details |
Type | Select the type of feed publisher to add to your page. To use global publisher actions defined in your Salesforce organization, choose Global. To use an object-specific publisher layout, choose Record. |
Record ID | Leave this field blank if you pick the Global feed publisher type. Typically, this field automatically populates with the record ID when the page loads. |
Publisher Layout Design | Select to see the wide or narrow feed publisher layout design. |