Port Ocean is a CLI tool for managing your Port projects.
Project description
Ocean
Ocean is a solution developed by Port to address the challenges faced while integrating various third-party systems with our developer portal product. This framework provides a standardized approach for implementing integrations, simplifying the process and allowing platform engineers to focus on the core functionality of the third-party system.
Installation
pip install port-ocean[cli]
or poetry add port-ocean[cli]
Run Integration
- source the integration venv
. .venv/bin/activate
ocean sail ./path/to/integration
Local Development (Framework)
- Clone the repository
- Install dependencies:
make install
ormake install/all
for installing integrations dependencies as well - source the integration venv
. .venv/bin/activate
Local Development (Integration)
- Clone the repository
- For new integration run
make new
and follow the instructions - Install dependencies:
cd DESIRED_INTEGRATION_FOLDER && make install
- source the integration venv
. .venv/bin/activate
- Run integration:
make run
Export Architecture
Real-Time updates Architecture
Self Service Architecture
Folder Structure
The Integration Framework follows a specific folder structure within the 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
framework
folder contains the core logic for managing the integration lifecycle. - Each integration is represented by a separate folder inside the
integrations
directory. - Inside each integration folder, you'll find a
main.py
file that implements the core functionality of the integration for the specific third-party system. - The
requirements.txt
file inside each integration folder lists the required dependencies for that integration.
Integration Lifecycle
Configuration
The Integration Framework utilizes a config.yaml
file for configuration. This file specifies the integrations to be used within an array. Each integration has a unique identifier and type, which are used during initialization to update Port accordingly.
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 trigger channel to use for the integration service.
triggerChannel:
type: KAFKA
brokers: "localhost:9092"
kafkaSecurityEnabled: false
integration:
# The name of the integration.
identifier: "my_integration"
# The type of the integration.
type: "Git"
config:
my_git_token: "random"
some_other_integration_config: "Very important information"
Contributing
We welcome contributions to the Integration Framework project. If you have any suggestions, bug reports, or would like to contribute new features, please follow our guidelines outlined in the CONTRIBUTING.md
file.
License
The Integration Framework is open-source software licensed under the Apache 2.0 License. See the LICENSE
file for more details.
Contact
For any questions or inquiries, please reach out to our team at support@getport.io
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for port_ocean-0.1.0.dev4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edd67e9f71358fb82089f3cd0bb9a0eb872b289981475524dae318ced2d4d2e9 |
|
MD5 | e5f19061141c5659450e9f83a7b090f4 |
|
BLAKE2b-256 | 93b3df86476401f49ec420f32441ac43f34c5c70c6622817eb6c955010ea4975 |