Portal
Proto: portal.proto
Package: apimanagement.gloo.solo.io
Types:
API
Field | Description |
---|---|
routeTable |
(common.gloo.solo.io.ObjectSelector )A list of route tables with routes to the APIs you want the developer portal to expose. The route table might also have ‘portalMetadata’ key-value fields that you want to display in the developer portal for end users. |
PortalSpec
The Portal resource configures a developer portal that you can use to securely expose your APIs to end users. Before you create the Portal, you bundle the APIs that you want to expose into a route table. Then, you prepare a usage plan to control access to your APIs by applying rate limiting and external auth policies to the routes in the route table. For more information, see the Portal docs.
The following examples show a Portal resource that refers to usage plans that are named in the rate limit server config's descriptors.
apiVersion: portal.gloo.solo.io/v2
kind: Portal
metadata:
name: public-portal
namespace: gloo-mesh
spec:
portalBackendSelectors:
- selector:
namespace: gloo-mesh
cluster: cluster-1
usagePlans:
- name: bronze
displayName: "Bronze Plan"
description: "A basic usage plan"
- name: silver
description: "A better usage plan"
- name: gold
description: "The best usage plan!"
apis:
- routeTables:
name: productpage
namespace: bookinfo
cluster: cluster-1
apiVersion: admin.gloo.solo.io/v2
kind: RateLimitServerConfig
metadata:
name: usage-plans
namespace: gloo-mesh-addons
spec:
destinationServers: [ ] # omitted, server refs
raw:
descriptors:
- key: usagePlan
value: bronze
descriptors:
- key: userId
rateLimit:
requestsPerUnit: 50
unit: MINUTE
- key: usagePlan
value: silver
descriptors:
- key: userId
rateLimit:
requestsPerUnit: 200
unit: MINUTE
- key: usagePlan
value: gold
descriptors:
- key: userId
rateLimit:
requestsPerUnit: 1000
unit: MINUTE
Field | Description |
---|---|
portalBackendSelector |
(repeated common.gloo.solo.io.WorkloadSelector )The workloads where an existing portal backend is running. |
apis |
(repeated API )A list of route tables that have routes to the APIs you want to expose in the developer portal. |
usagePlans |
(repeated PortalSpec.UsagePlan )The usage plans to control access to the APIs that the developer portal exposes. |
domains |
(repeated string )The domains on which this Portal will be served. The Host header received by the Portal Web App will be matched to one of these domains in order to determine which Portal will be served. If you are using the Gateway through which you are exposing the Portal is listening on a port other than 80/443, you should include the port as part of the domain string, e.g. “portal.solo.io:8443”. To prevent undefined behavior, creating a Portal whose domain conflicts with an existing Portal will result in the Portal resource being placed into an ‘Invalid’ state. |
PortalSpec.UsagePlan
Field | Description |
---|---|
name |
(string )Match the names of the usage plans with the descriptors that you defined in the rate limit server config. |
displayName |
(string )Optional display name for the usage plan to show end users in the developer portal. |
description |
(string )Optional description for the usage plan to show end users in the developer portal. You might include information about how to get the plan or what the plan includes and excludes. |
PortalStatus
reflects the status of the Portal resource
Field | Description |
---|---|
global |
(common.gloo.solo.io.GenericGlobalStatus ) |
workspaces |
(repeated PortalStatus.WorkspacesEntry )The status of the resource in each workspace that it exists in. |
ownerWorkspace |
(common.gloo.solo.io.OwnerWorkspace )Name of workspace that owns the portal. |
PortalStatus.WorkspacesEntry
Field | Description |
---|---|
key |
(string ) |
value |
(common.gloo.solo.io.WorkspaceStatus ) |