Ocean 
Ocean is Port's open source integration framework. It makes it easy to ingest data from your third-party tools and infrastructure into Port, the platform for building your AI software factory.
Prerequisites
- Python 3.12
Installation
In order to install the Ocean Framework, run the following command:
pip install "port-ocean[cli]"
Or
poetry add "port-ocean[cli]"
Run Integration
-
source the integration venv
. .venv/bin/activate -
Run
ocean sail ./path/to/integration
Export Architecture
Real-Time updates Architecture
Integration Lifecycle
Folder Structure
The Ocean Integration Framework follows a specific folder structure within this mono repository. This structure ensures proper organization and easy identification of integration modules. The suggested folder structure is as follows:
port-ocean/
├── port_ocean (framework)/
│ ├── ocean.py
│ ├── core/
| └── ...
└── integrations/
│ └─── integration_name/
│ ├──── main.py
│ ├──── pyproject.toml
│ └──── Dockerfile
├── ...
└── ...
- The
frameworkfolder contains the core logic for managing the integration lifecycle. - Each integration is represented by a separate folder inside the
integrationsdirectory. - Inside each integration folder, you'll find a
main.pyfile that implements the core functionality of the integration for the specific third-party system. - The
pyproject.tomlfile inside each integration folder lists the required dependencies for that integration.
Configuration
The Integration Framework utilizes a config.yaml file for its configuration. This file defines both the framework configuration and the integration configuration within it. Each integration is identified by its type and unique identifier, which are utilized during initialization to appropriately update Port.
Example config.yaml:
# This is an example configuration file for the integration service.
# Please copy this file to config.yaml file in the integration folder and edit it to your needs.
port:
clientId: PORT_CLIENT_ID # Can be loaded via environment variable: PORT_CLIENT_ID
clientSecret: PORT_CLIENT_SECRET # Can be loaded via environment variable: PORT_CLIENT_SECRET
baseUrl: https://api.getport.io/v1
# The event listener to use for the integration service.
eventListener:
type: KAFKA / WEBHOOK
integration:
# The name of the integration.
identifier: "my_integration"
# The type of the integration.
type: "PagerDuty"
config:
my_git_token: "random"
some_other_integration_config: "Very important information"
Contributing
The reason Ocean is open source is that we aim for the Port integration library to offer numerous useful out-of-the-box integrations. We have confidence that developers and DevOps professionals who rely on Port in their everyday work will be inclined to contribute and assist in making it a comprehensive tool.
In order to learn how you can contribute to Ocean, read our contributing guide
Local Development (Framework)
-
Clone the repository
-
Install dependencies:
make installOr (For installing integrations dependencies as well)
make install/all -
source the integration venv
. .venv/bin/activate
Local Development (Integration)
-
Clone the repository
-
For new integration run
make newand follow the instructions
-
Install dependencies
-
cd DESIRED_INTEGRATION_FOLDER && make install
-
source the integration venv
. .venv/bin/activate -
Run the integration
make runOr
ocean sail
License
The Ocean Framework is open-source software licensed under the Apache 2.0 License. See the LICENSE file for more information.
Contact
For any questions or inquiries, please reach out to our team at support@getport.io
Metadata
Release files for port-ocean 0.55.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| port_ocean-0.55.4.tar.gz | 378.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| port_ocean-0.55.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 910.5 kB
Release files / port_ocean-0.55.4.tar.gz
| Download URL | port_ocean-0.55.4.tar.gz |
|---|---|
| Size | 378.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3eed1a3e646e40d4b948db5f7a647ba4d9f95ad8de461cce012e4ea0b7c3c442
|
|
BLAKE2b-256 checksum How to use checksums |
e7422310dde1e83e2cc9e67617feda5daa827d53b26f3c59fb6758590ca72f25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / port_ocean-0.55.4-py3-none-any.whl
| Download URL | port_ocean-0.55.4-py3-none-any.whl |
|---|---|
| Size | 531.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e28f01b455bffcfacdcb599c6d6958de5aec1c4e2817159046e53e6bb282797
|
|
BLAKE2b-256 checksum How to use checksums |
595808e3b0d53c6bf65fdf68be3c09f0e01fa8e4e891fcbb3e3ddd9698d04b27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for port-ocean 0.55.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.