Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changes/unreleased/Feature-20260910-093000.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
kind: Feature
body: Add `opslevel.ssrfAllowedIpRanges` so self-hosted operators can allow-list internal
IPs/CIDRs that custom integrations and webhooks need to reach, rendered into
`SSRF_ALLOWED_IP_RANGES`
time: 2026-09-10T09:30:00.000000-04:00
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@
.idea
/manifests
rendered
# Stray chart tarballs from a manual `helm pull` in the repo root. Anchored so the
# vendored subcharts under charts/*/charts/ stay tracked and visible in git status.
/*.tgz
# `task pull-self-hosted` untars the published chart here
/downloads
1 change: 1 addition & 0 deletions charts/opslevel/templates/opslevel/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ data:
SMTP_PORT: '{{ .Values.smtp.secret.port }}'
SMTP_USERNAME: '{{ .Values.smtp.secret.username }}'
SORBET_RUNTIME_DEFAULT_CHECKED_LEVEL: 'never'
SSRF_ALLOWED_IP_RANGES: '{{ join "," .Values.opslevel.ssrfAllowedIpRanges }}'
THROTTLE_GRAPHQL_LIMIT: '250'
THROTTLER_ENABLED: 'true'
TRANSACTIONAL_OUTBOX_ENABLED: '{{ .Values.opssight.enabled }}'
7 changes: 7 additions & 0 deletions charts/opslevel/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ opslevel:
domain: "example.com"
subdomain: "self-hosted"
forceSSL: false
# Internal destinations the app is allowed to reach when making outbound requests
# on a user-supplied URL -- custom action webhooks, custom integration extractors.
# Private, loopback, link-local and cloud-metadata addresses are blocked by default;
# list an IP ("10.1.2.3") or CIDR range ("10.0.0.0/8") here to carve one back out.
# Rendered into SSRF_ALLOWED_IP_RANGES, which web, workers and the scheduler all
# read at startup -- changing it restarts them.
ssrfAllowedIpRanges: []
image:
repository: "746108190720.dkr.ecr.us-east-1.amazonaws.com/opslevel"
tag: "selfhosted-prod-8de7ca42-1786633441"
Expand Down