Skip to content

Commit 3550779

Browse files
Merge branch 'main' into DIGCS-1-migrate-bibucket-to-github
# Conflicts: # src/components/guides-section/consts.js
2 parents af5c20e + f99960f commit 3550779

File tree

204 files changed

+6901
-2395
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

204 files changed

+6901
-2395
lines changed

CONTRIBUTING.md renamed to best_practices.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
1-
# Contributing to Port's documentation
1+
# Port documentation style guide
22

3-
Here you can find resources and guidelines on how to contribute to Port's documentation and how to correctly write and fix documentation content.
4-
5-
## How to contribute
6-
7-
The best way to suggest edits for an existing page is by using the "Edit this page" button at the bottom of most docs, this button will take you to the GitHub interface to make and propose changes.
8-
9-
If you want to add a new documentation page, please fork the repository and after adding the new docs, create a PR which will be reviewed by our team.
10-
11-
Contributions are very welcome. If you need help planning your contribution, feel free to ask us by opening an issue in this repository or by writing in our [community Slack](https://join.slack.com/t/getport/shared_invite/zt-1v5z1z1v-3~1Q1Q1).
3+
This document details guidelines for contributing to Port's documentation, and demonstrates how to correctly write and review documentation content.
124

135
## Styling guidelines
146

docs/actions-and-automations/actions-and-automations.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import PortTooltip from "/src/components/tooltip/tooltip.jsx"
55
One of Port's core offerings is the ability to automate and simplify the processes and routines of your developers.
66
This is done using two powerful tools:
77

8-
## 1. Self-service actions
8+
## 1. Actions
99

10-
Create a wide range of personalized, controlled actions that developers can use to scaffold a service, provision a cloud resource, or any other logic that serves your organization.
11-
Self-service actions drive developer productivity by providing a consistent and repeatable way to perform common tasks, all with guardrails like manual approvals or consumption policies to comply with organizational standards.
10+
Actions are executable pieces of logic that developers or AI agents can run. You can create a wide range of personalized, controlled actions to scaffold a service, provision a cloud resource, or any other logic that serves your organization. Actions drive developer productivity by providing a consistent and repeatable way to perform common tasks, all with guardrails like manual approvals or consumption policies to comply with organizational standards.
1211

1312
:::tip Live demo
1413
For real-world examples of self-service actions, check out our [live demo](https://showcase.port.io/self-serve).
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"label": "Create self-service actions",
2+
"label": "Create actions",
33
"position": 1
44
}

docs/actions-and-automations/create-self-service-experiences/create-self-service-experiences.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import ExecuteActionLocations from '/docs/actions-and-automations/create-self-se
1414
</center>
1515
<br/>
1616

17-
Drive developer productivity by allowing developers to use self-service actions like scaffolding a service or provisioning a cloud resource. Developer self-service drives consistency and repeatability and ensures that their routines are intuitive and clear, all with guardrails like manual approvals or consumption policies to comply with organizational standards.
17+
Actions are executable pieces of logic that either developers or AI agents can run. They drive developer productivity by enabling them to use actions like scaffolding a service or provisioning a cloud resource.
18+
19+
Actions drive consistency and repeatability and ensure that routines are intuitive and clear, all with guardrails like manual approvals or consumption policies to comply with organizational standards.
1820

1921
Port's action model is designed to be flexible and can be used to cover a wide range of use-cases:
2022

@@ -24,7 +26,7 @@ Port's action model is designed to be flexible and can be used to cover a wide r
2426
4. **Stateful** - every invoked action affects the software catalog by adding/modifying/deleting one or more entities.
2527
5. **Secure by design** - does not require keys to sensitive infrastructure by using an event-based model. All actions are audited and can include guardrails like manual approval and TTL.
2628

27-
## 💡 Common self-service actions
29+
## Common self-service actions
2830

2931
- [**Scaffold** a new service](https://docs.port.io/guides/all/scaffold-a-new-service/).
3032
- [**Create** a cloud resource](https://docs.port.io/guides/all/create-cloud-resource-using-iac).
@@ -37,7 +39,7 @@ In our [live demo](https://showcase.port.io/self-serve), you can see examples fo
3739

3840
## How does it work?
3941

40-
1. A user **executes an action** from Port's UI interface.
42+
1. A user or AI agent **executes an action** from Port's UI interface or through API calls.
4143
2. A pre-defined **payload** containing any desired metadata about the action and its inputs is **sent** to your infrastructure.
4244
3. A **job is triggered** and the user gets a **continuous indication** about its progress.
4345
4. Once the action is running, you can use Port's API to **update Port on its status** and provide information such as **logs and links to the resulting handlers**.

docs/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/set-self-service-actions-rbac.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,58 @@ Add the `requiredApproval` field to your action:
114114
</TabItem>
115115
</Tabs>
116116

117+
## Configure visibility for action runs
118+
119+
When creating or editing a self-service action, you can also control who can **view its runs**, using the relevant toggle in the `Permissions` tab.
120+
121+
122+
- **When enabled (default):** All organization members can view the action’s runs.
123+
- **When disabled:**
124+
- **Admins** can view all runs.
125+
- **Approvers** can view runs they are assigned to approve.
126+
- **Members** can only view their own runs.
127+
128+
This ensures that sensitive operational data remains accessible only to authorized users, while maintaining flexibility and transparency where needed.
129+
130+
131+
<Tabs groupId="config-method" queryString values={[
132+
{label: "UI", value: "ui"},
133+
{label: "API", value: "api"},
134+
]}>
135+
136+
<TabItem value="ui">
137+
138+
<img src='/img/self-service-actions/rbac/viewRunAccess.png' width='70%' border='1px' />
139+
140+
</TabItem>
141+
142+
<TabItem value="api">
143+
144+
Add the `isViewRunAccess` field to your action:
145+
146+
```json showLineNumbers
147+
[
148+
{
149+
...
150+
"invocationMethod": {
151+
"type": "WEBHOOK",
152+
"url": "https://example.com"
153+
},
154+
"trigger": {
155+
...
156+
"operation": "CREATE",
157+
}
158+
// highlight-next-line
159+
"isViewRunAccess": true,
160+
...
161+
}
162+
]
163+
```
164+
165+
</TabItem>
166+
167+
</Tabs>
168+
117169
### Define approval notifications
118170

119171
By default manual approval notifications are sent via **Email** to users who have [approval permissions](#define-approvers).

docs/actions-and-automations/reflect-action-progress/reflect-action-progress.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ In addition to the methods mentioned above, `admins` can find action runs using
3737
- Go the [entity page](/customize-pages-dashboards-and-plugins/page/entity-page.md) of your desired entity, then select the `Runs` tab.
3838
This page will display all action runs that have been executed for the selected Entity.
3939

40+
## Who can view action runs
41+
42+
Run visibility is controlled by the action’s permissions. See [Configure visibility for action runs](/actions-and-automations/create-self-service-experiences/set-self-service-actions-rbac/#configure-visibility-for-action-runs) for details.
43+
44+
4045
## Fetch an action run
4146

4247
Once an `actionRun` is created, it will have a unique `runId`. Using this id, you can interact with the action run using Port's API.

docs/actions-and-automations/setup-backend/webhook/port-execution-agent/usage.md

Lines changed: 157 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@ sidebar_position: 2
44

55
# Usage
66

7-
When using the execution agent, in the `url` field you need to provide a URL to a service (for example, a REST API) that will accept the invocation event.
8-
9-
- The service can be a private service running inside your private network;
10-
- Or, it can be a public accessible service from the public internet (**note** in this scenario, the execution agent needs corresponding outbound network rules that will allow it to contact the public service).
11-
12-
:::note
13-
**IMPORTANT**: To make use of the **Port execution agent**, you need to configure:
7+
To make use of the **Port execution agent**, you need to configure:
148

159
<!-- TODO: add back the URLs here for changelog destination -->
1610

@@ -22,37 +16,177 @@ For example:
2216
```json showLineNumbers
2317
{ "type": "WEBHOOK", "agent": true, "url": "URL_TO_API_INSIDE_YOUR_NETWORK" }
2418
```
25-
:::
2619

27-
Well Done! **Port Agent** is now running in your environment and will trigger any webhook that you've configured (for self-service actions, or changes in the software catalog).
20+
When using the execution agent, in the `url` field you need to provide a URL to a service (for example, a REST API) that will accept the invocation event.
2821

29-
When a new invocation is detected, the agent will pull it from your Kafka topic and forward it to the internal API in your private network.
22+
- The service can be a private service running inside your private network;
23+
- Or, it can be a public accessible service from the public internet (**note** in this scenario, the execution agent needs corresponding outbound network rules that will allow it to contact the public service).
24+
25+
Once configured, the Port Agent will run in your environment and trigger webhooks for self-service actions or software catalog changes.
26+
27+
When a new invocation is detected, the agent pulls it from your Kafka topic and forwards it to the internal API in your private network.
3028

3129
![Port Execution Agent Logs](/img/self-service-actions/port-execution-agent/portAgentLogs.png)
3230

31+
:::info Advanced configuration
32+
For a complete list of all available configuration parameters and their descriptions, see the [Port Agent Helm chart README](https://github.com/port-labs/helm-charts/tree/main/charts/port-agent).
33+
:::
3334

34-
## Advanced configuration
35-
Some environments require special configuration when working with the Port agent. This includes working with self-signed certificates and/or proxies.
35+
## Self-signed certificate configuration
3636

37-
Port's agent uses Python's [requests](https://requests.readthedocs.io/en/latest/) library. This allows passing advanced configuration using environment variables.
37+
For self-hosted 3rd-party applications with self-signed certificates, the agent can be configured to trust custom CA certificates. The `selfSignedCertificate` parameters control this behavior.
3838

39-
To add an environment variable using the agent's Helm chart, either:
39+
### Option 1: Provide certificate in Helm values
4040

41-
1. Using Helm's `--set` flag:
42-
```sh showLineNumbers
43-
helm upgrade --install <MY_INSTALLATION_NAME> port-labs/port-ocean \
41+
Use this option to provide the certificate content directly in your Helm values file or via the `--set-file` flag.
42+
43+
**How to use:**
44+
1. Set `selfSignedCertificate.enabled` to `true`
45+
2. Provide the certificate content in `selfSignedCertificate.certificate`
46+
3. Keep `selfSignedCertificate.secret.useExistingSecret` as `false` (default)
47+
48+
**Method A: Inline certificate in values.yaml**
49+
50+
Configure in your `values.yaml`:
51+
```yaml
52+
selfSignedCertificate:
53+
enabled: true
54+
certificate: |
55+
-----BEGIN CERTIFICATE-----
56+
<YOUR_CERTIFICATE_CONTENT>
57+
-----END CERTIFICATE-----
58+
secret:
59+
name: ""
60+
key: crt
61+
useExistingSecret: false
62+
```
63+
64+
Install with:
65+
```bash
66+
helm install my-port-agent port-labs/port-agent \
67+
--create-namespace --namespace port-agent \
68+
-f values.yaml
69+
```
70+
71+
**Method B: Reference certificate file using `--set-file`**
72+
73+
Configure in your `custom_values.yaml`:
74+
```yaml
75+
selfSignedCertificate:
76+
enabled: true
77+
certificate: ""
78+
secret:
79+
name: ""
80+
key: crt
81+
useExistingSecret: false
82+
```
83+
84+
Install with:
85+
```bash
86+
helm install my-port-agent port-labs/port-agent \
87+
--create-namespace --namespace port-agent \
88+
-f custom_values.yaml \
89+
--set selfSignedCertificate.enabled=true \
90+
--set-file selfSignedCertificate.certificate=/PATH/TO/CERTIFICATE.crt
91+
```
92+
93+
### Option 2: Use existing Kubernetes secret
94+
95+
Use this option to reference a pre-existing Kubernetes secret that you manage separately. The secret must contain the certificate data.
96+
97+
**How to use:**
98+
1. Set `selfSignedCertificate.enabled` to `true`
99+
2. Set `selfSignedCertificate.secret.useExistingSecret` to `true`
100+
3. Specify the secret name in `selfSignedCertificate.secret.name`
101+
4. Specify the key within the secret in `selfSignedCertificate.secret.key` (defaults to `crt`)
102+
5. Leave `selfSignedCertificate.certificate` empty
103+
104+
**Complete configuration:**
105+
```yaml
106+
selfSignedCertificate:
107+
enabled: true
108+
certificate: ""
109+
secret:
110+
name: my-ca-cert
111+
key: ca.crt
112+
useExistingSecret: true
113+
```
114+
115+
### Automatic configuration
116+
117+
When `selfSignedCertificate.enabled` is set to `true`, the Helm chart automatically:
118+
- Mounts the certificate to `/usr/local/share/ca-certificates/cert.crt`
119+
- Sets `SSL_CERT_FILE` and `REQUESTS_CA_BUNDLE` environment variables to point to the certificate
120+
121+
### Multiple certificates
122+
123+
For environments requiring multiple custom certificates, use the `extraVolumes` and `extraVolumeMounts` parameters alongside the built-in `selfSignedCertificate` feature. One certificate must be provided via `selfSignedCertificate`, and additional certificates can be mounted as extra volumes.
124+
125+
**Configuration:**
126+
```yaml
127+
selfSignedCertificate:
128+
enabled: true
129+
secret:
130+
name: primary-cert
131+
key: ca.crt
132+
useExistingSecret: true
133+
134+
extraVolumes:
135+
- name: additional-certs
136+
secret:
137+
secretName: secondary-certs
138+
extraVolumeMounts:
139+
- name: additional-certs
140+
mountPath: /usr/local/share/ca-certificates/cert2.crt
141+
subPath: cert2.crt
142+
readOnly: true
143+
```
144+
145+
:::info Certificate requirements
146+
- Each certificate must be provided in PEM format as a separate file
147+
- Certificates must be mounted to `/usr/local/share/ca-certificates/` with a `.crt` file extension
148+
:::
149+
150+
## Overriding configurations
151+
152+
When installing the Port Agent, you can override default values in the `helm upgrade` command:
153+
154+
By using the `--set` flag, you can override specific agent configuration parameters during agent installation/upgrade:
155+
156+
```bash showLineNumbers
157+
helm upgrade --install my-port-agent port-labs/port-agent \
158+
--create-namespace --namespace port-agent \
159+
--set env.normal.PORT_ORG_ID="YOUR_ORG_ID" \
160+
--set env.normal.KAFKA_CONSUMER_GROUP_ID="YOUR_CONSUMER_GROUP_ID" \
161+
--set env.secret.PORT_CLIENT_ID="YOUR_CLIENT_ID" \
162+
--set env.secret.PORT_CLIENT_SECRET="YOUR_CLIENT_SECRET" \
163+
--set secret.useExistingSecret=false \
164+
--set replicaCount=2 \
165+
--set resources.limits.memory="512Mi"
166+
```
167+
168+
## Extra environment variables
169+
170+
To pass extra environment variables to the agent's runtime, you can use the `env.normal` section for non-sensitive variables.
171+
172+
Using Helm's `--set` flag:
173+
```bash showLineNumbers
174+
helm upgrade --install my-port-agent port-labs/port-agent \
44175
# Standard installation flags
45176
# ...
46-
--set env.normal.VAR_NAME=VAR_VALUE
177+
--set env.normal.HTTP_PROXY=http://my-proxy.com:1111 \
178+
--set env.normal.HTTPS_PROXY=http://my-proxy.com:2222
47179
```
48180

49-
2. The Helm `values.yaml` file:
181+
Using the `values.yaml` file:
50182
```yaml showLineNumbers
51183
# The rest of the configuration
52184
# ...
53185
env:
54186
normal:
55-
VAR_NAME: VAR_VALUE
187+
HTTP_PROXY: "http://my-proxy.com:1111"
188+
HTTPS_PROXY: "http://my-proxy.com:2222"
189+
NO_PROXY: "127.0.0.1,localhost"
56190
```
57191

58192
### Proxy configuration
@@ -69,51 +203,17 @@ ALL_PROXY=http://my-proxy.com:3333
69203

70204
#### `NO_PROXY`
71205

72-
`NO_PROXY` allows blacklisting certain addresses from being handled through a proxy. This variable accepts a comma-seperated list of hostnames or urls.
206+
`NO_PROXY` allows blacklisting certain addresses from being handled through a proxy. This variable accepts a comma-separated list of hostnames or URLs.
73207

74208
For example:
75209
```sh showLineNumbers
76210
NO_PROXY=http://127.0.0.1,google.com
77211
```
78212

79-
For more information take a look at the Requests [proxy configuration documentation](https://requests.readthedocs.io/en/latest/user/advanced/#proxies).
80-
81-
### SSL Environment Configuration
82-
83-
### Certificate Configuration
84-
85-
#### Self-signed certificate
86-
87-
Use the following Helm values:
88-
- Set `selfSignedCertificate.enabled` to `true`.
89-
- Put your PEM-encoded CA content in `selfSignedCertificate.certificate`.
90-
91-
The certificate should be mounted to `/usr/local/share/ca-certificates/`.
92-
93-
`REQUESTS_CA_BUNDLE` is an environment variable used to specify a custom Certificate Authority (CA) bundle for verifying SSL/TLS certificates in HTTPS requests.
94-
95-
Set `REQUESTS_CA_BUNDLE` to the file path of your CA bundle, which should contain one or more CA certificates in PEM format.
96-
97-
For example:
98-
```sh
99-
REQUESTS_CA_BUNDLE=/path/to/cacert.pem
100-
```
101-
102-
This configuration directs the `requests` library to use the specified CA bundle for SSL/TLS certificate verification, overriding default system settings. It's useful for trusting self-signed certificates or certificates from a private CA.
103-
104-
#### Multiple certificates
105-
106-
Use the following Helm values:
107-
- Keep your certificate via `selfSignedCertificate` as above.
108-
- Add other certificates by supplying files via `extraVolumes` and mounting them with `extraVolumeMounts` into the container at `/usr/local/share/ca-certificates/<your-cert-name>.crt`.
109-
110-
:::info Certificate file requirements
111-
- Each certificate must be provided in a separate PEM file. Files containing multiple certificates are not supported.
112-
- Certificates must be mounted to `/usr/local/share/ca-certificates/` with a `.crt` file extension.
113-
:::
213+
For more information, see the Requests [proxy configuration documentation](https://requests.readthedocs.io/en/latest/user/advanced/#proxies).
114214

115215
## Next Steps
116216

117217
Follow one of the guides below:
118218

119-
- [GitLab Pipeline Trigger](/actions-and-automations/setup-backend/gitlab-pipeline/gitlab-pipeline.md) - Create an action that triggers GitLab Pipeline execution.
219+
- [GitLab Pipeline Trigger](/actions-and-automations/setup-backend/gitlab-pipeline/gitlab-pipeline.md) - Create an action that triggers GitLab Pipeline execution.

0 commit comments

Comments
 (0)