> For the complete documentation index, see llms.txt.
Skip to main content

Check out Port for yourself ➜ 

Setup

Using this installation option means that the integration will run in your own infrastructure, giving you full control over resources and configuration. You can deploy it using Helm or Docker, and it will run continuously in your environment to keep your data synchronized with Port.

High-scale environments

For high-scale environments with large datasets, allocate sufficient CPU and memory based on your data volume.

Installation

Choose your preferred deployment method:

To install the integration using Helm:

  1. Go to the custom data source page in your portal.

  2. Select the Real-time and always on method:

Real-time self-hosted installation method selection
  1. A helm command will be displayed, with default values already filled out (e.g. your Port client ID, client secret, etc). Copy the command, replace the placeholders with your values, then run it in your terminal to install the integration.

Alternatively, you can install manually using the following steps:

  1. Add Port's Helm chart repository:
helm repo add --force-update port-labs https://port-labs.github.io/helm-charts
  1. Install the Helm chart with your configuration:
helm install ocean-custom port-labs/port-ocean \
--set port.clientId="<PORT_CLIENT_ID>" \
--set port.clientSecret="<PORT_CLIENT_SECRET>" \
--set port.baseUrl="https://api.port.io" \
--set initializePortResources=true \
--set scheduledResyncInterval=60 \
--set integration.identifier="ocean-custom" \
--set integration.type="custom" \
--set integration.eventListener.type="POLLING" \
--set integration.config.baseUrl="https://api.yourcompany.com" \
--set integration.config.authType="bearer_token" \
--set integration.secrets.apiToken="<YOUR_API_TOKEN>" \
--set integration.config.paginationType="page" \
--set integration.config.pageSize=100
Selecting a Port API URL by account region

The port_region, port.baseUrl, portBaseUrl, port_base_url and OCEAN__PORT__BASE_URL parameters select which Port API instance to use:

Health check endpoint

All Ocean integrations expose a health check endpoint at /docs.

For example, if your integration is accessible at https://your-integration-host:8000, you can access the health check at https://your-integration-host:8000/docs.

Configuration parameters

This table summarizes the available parameters for the installation.

ParameterDescriptionExampleRequired
port.clientIdYour port client id
port.clientSecretYour port client secret
port.baseUrlYour Port API URL - https://api.port.io for EU, https://api.us.port.io for US
integration.config.baseUrlThe root URL of your API (e.g., https://api.yourcompany.com)https://api.yourcompany.com
integration.config.authTypeAuthentication type: bearer_token, api_key, basic, custom, or none. For custom authentication (OAuth2, JWT, etc.), see custom authenticationbearer_token
integration.secrets.apiTokenBearer token for authentication (required when authType is bearer_token)
integration.config.paginationTypePagination type: offset, page, cursor, or nonepage
integration.config.pageSizeNumber of items per page (for offset/page pagination)100
integration.config.timeoutRequest timeout in seconds (default: 30)30
integration.eventListener.typeThe event listener type. Read more about event listenersPOLLING
integration.typeThe integration to be installedcustom
scheduledResyncIntervalThe number of minutes between each resync. When not set the integration will resync for each event listener resync event. Read more about scheduledResyncInterval60
initializePortResourcesControls legacy initialization behavior. Do not set this parameter to false to prevent default resource creation; use createPortResourcesOrigin instead.true
createPortResourcesOriginSet to Empty to register only the integration without creating default blueprints or mappings. For Docker, set OCEAN__CREATE_PORT_RESOURCES_ORIGIN="Empty".Empty
sendRawDataExamplesEnable sending raw data examples from the third party API to port for testing and managing the integration mapping. Default is truetrue
Start without default resources

For Helm deployments, set createPortResourcesOrigin: Empty in your values file or pass --set createPortResourcesOrigin="Empty". The integration registers in Port, but it does not create default blueprints or mappings.

Recommended resource sizes

To ensure optimal performance and avoid out-of-memory (OOM) errors, we recommend the following resources for this integration:

  • CPU Limit: 800m
  • CPU Request: 400m
  • Memory Limit: 4Gi
  • Memory Request: 4Gi

Set resource values

helm install my-integration port-labs/port-ocean \
# ... other parameters
--set resources.limits.cpu=800m \
--set resources.limits.memory=4Gi \
--set resources.requests.cpu=400m \
--set resources.requests.memory=4Gi

Authentication

The integration supports several authentication types:

  • Bearer token: Use authType: "bearer_token" with an API token
  • API key: Use authType: "api_key" with an API key and optional custom header name
  • Basic auth: Use authType: "basic" with username and password
  • Custom authentication: Use authType: "custom" for OAuth2, JWT, and other dynamic token-based flows. See custom authentication for details.
  • None: Use authType: "none" for public APIs without authentication

Ready to build?

Head to build your integration for a step-by-step guide with an interactive configuration builder.

More resources

For all configuration options, code examples, and advanced use cases, check out the Ocean custom integration repository on GitHub.