Skip to content

read me updates and hardening fixes - #3898

Merged
akshaydeo merged 1 commit into
devfrom
05-29-read_me_updates_and_hardening_fixes
May 29, 2026
Merged

akshaydeo merged 1 commit into
devfrom
05-29-read_me_updates_and_hardening_fixes

Conversation

@akshaydeo

@akshaydeo akshaydeo commented May 29, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes CI failures caused by harden-runner's egress-policy blocking Postgres connections in the release pipeline. Because harden-runner filters on the post-NAT destination IP, host processes dialing 127.0.0.1:5432 are actually reaching Postgres at its Docker bridge IP after DNAT. The Postgres container now has a pinned bridge IP (172.38.0.11) and that IP:port is explicitly added to the allowed-endpoints list for every release-pipeline job that connects to Postgres (test-migrations, test-bifrost-http, test-api-integrations). This PR also adds the ent-v1.4.5 and helm-v2.1.20 changelogs.

Changes

  • Assigned a static IPv4 address (172.38.0.11) to the Postgres container in docker-compose.yml so the post-NAT bridge IP is deterministic and can be allowlisted.
  • Added 172.38.0.11:5432 to the harden-runner allowed-endpoints in the test-migrations, test-bifrost-http, and test-api-integrations jobs in release-pipeline.yml. Added inline comments explaining the DNAT behaviour and the requirement to keep the pinned IPs in sync.
  • Added 172.38.0.12:8080 and 172.38.0.12:8301 (Weaviate's pinned bridge IP) to the test-api-integrations job, which starts all Compose services and waits for Weaviate to become healthy.
  • Added docs/changelogs/ent-v1.4.5.mdx covering identity lifecycle, MCP per-user auth, governance UI sheets, and OSS base transports/v1.5.6 additions.
  • Added docs/changelogs/helm-v2.1.20.mdx documenting the authServerType field addition to the Okta SCIM/SSO schema.
  • Registered both new changelog pages in docs/docs.json.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

Trigger the release pipeline and confirm the test-migrations, test-bifrost-http, and test-api-integrations jobs complete without harden-runner blocking egress to 172.38.0.11:5432. Verify Weaviate health checks pass in test-api-integrations with the newly added 172.38.0.12 entries.

# Verify Postgres container receives the pinned IP at runtime
docker compose -f .github/workflows/configs/docker-compose.yml up -d postgres
docker inspect <postgres_container> | grep '"IPAddress"'
# Expected: 172.38.0.11

Breaking changes

  • Yes
  • No

Related issues

N/A

Security considerations

The pinned IPs are internal Docker bridge addresses scoped to the CI runner's network namespace. Allowlisting them in harden-runner does not expose any additional external endpoints; it only permits loopback-equivalent container-to-host traffic that was already implicitly occurring via the published port mapping.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

Summary by CodeRabbit

  • Documentation

    • Added Enterprise v1.4.5 release notes covering identity lifecycle management, per-user authentication, Okta synchronization enhancements, and governance UI improvements.
    • Added Helm v2.1.20 release notes with new Okta SCIM/SSO configuration support.
    • Updated documentation navigation.
  • Chores

    • Updated CI/workflow infrastructure configurations.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 75101d05-c3d1-49df-97ea-6268e71a85ad

📥 Commits

Reviewing files that changed from the base of the PR and between 278b61b and 4d4b4a9.

📒 Files selected for processing (5)
  • .github/workflows/configs/docker-compose.yml
  • .github/workflows/release-pipeline.yml
  • docs/changelogs/ent-v1.4.5.mdx
  • docs/changelogs/helm-v2.1.20.mdx
  • docs/docs.json

📝 Walkthrough

Walkthrough

This PR aligns CI infrastructure by pinning the Postgres container to a fixed IPv4 address in docker-compose and updating harden-runner egress allow-lists across test jobs to permit this pinned IP (and Weaviate endpoints for API tests). It also publishes two new release changelogs: Enterprise v1.4.5 covering identity lifecycle and MCP authentication changes, and Helm v2.1.20 documenting a new authServerType configuration field. Documentation navigation is updated to include both.

Changes

CI Infrastructure Network Pinning

Layer / File(s) Summary
Docker Compose Postgres Network Pinning
.github/workflows/configs/docker-compose.yml
Postgres service is pinned to IPv4 172.38.0.11 on the bifrost_network with comments documenting synchronization with downstream egress filters.
Harden-Runner Egress Allow-List Updates
.github/workflows/release-pipeline.yml
Three test jobs (test-bifrost-http, test-migrations, test-api-integrations) have egress allow-lists expanded to permit the pinned Postgres IP 172.38.0.11:5432. API integration tests also allow Weaviate pinned endpoints 172.38.0.12:8080 and 172.38.0.12:8301.

Release Documentation

Layer / File(s) Summary
Enterprise v1.4.5 Release Notes
docs/changelogs/ent-v1.4.5.mdx
New changelog for Enterprise v1.4.5 (2026-05-29) documenting features (identity lifecycle/IdP sync, user activeness, Okta app-scoped sync, MCP per-user auth with TLS/session filtering, governance UI sheets migration), fixes across multiple domains, base OSS v1.5.6 module versions, and Go module dependencies for plugin compilation.
Helm v2.1.20 Release Notes and Navigation Update
docs/changelogs/helm-v2.1.20.mdx, docs/docs.json
New Helm v2.1.20 changelog (2026-05-29) documenting the addition of authServerType configuration field for Okta SCIM/SSO with auto-detection support. Both new changelog entries are added to the documentation navigation index.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • maximhq/bifrost#3772: Updates harden-runner egress allow-lists in .github/workflows/release-pipeline.yml to align with docker-compose pinned networking changes.
  • maximhq/bifrost#3684: Adds Enterprise release changelog MDX pages and updates docs/docs.json navigation (different version: ent-v1.4.3).

Suggested reviewers

  • danpiths

Poem

🐰 The network now knows where to find Postgres home,
IPv pinned and harmonized across the CI chrome,
Two releases announced with changelogs bright—
Enterprise gains auth, Helm gains light! 🌟

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 05-29-read_me_updates_and_hardening_fixes

Comment @coderabbitai help to get the list of available commands and usage tips.

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@akshaydeo
akshaydeo marked this pull request as ready for review May 29, 2026 18:44
@akshaydeo
akshaydeo requested a review from a team as a code owner May 29, 2026 18:44

akshaydeo commented May 29, 2026

Copy link
Copy Markdown
Contributor Author

Merge activity

  • May 29, 6:44 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • May 29, 6:45 PM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo
akshaydeo merged commit 67e57dd into dev May 29, 2026
12 of 14 checks passed
@akshaydeo
akshaydeo deleted the 05-29-read_me_updates_and_hardening_fixes branch May 29, 2026 18:45
@greptile-apps

greptile-apps Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 5/5

All changes are safe to merge; the CI fixes are self-contained and the docs additions are well-formed.

The docker-compose change correctly extends an already-working static-IP pattern to Postgres; the bifrost_network ipam subnet (172.38.0.0/16) already covered all other services at .11–.14 so no new infrastructure is introduced. All three harden-runner jobs that talk to Postgres via the published port have been updated. The changelog files are complete and both are wired into docs.json. No logic, schema, or Go code is touched.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/configs/docker-compose.yml Postgres service gains a pinned static IP (172.38.0.11) on bifrost_network, consistent with all other services; bifrost_network already declares an ipam subnet (172.38.0.0/16) so the address assignment is valid
.github/workflows/release-pipeline.yml Three harden-runner jobs (test-bifrost-http, test-migrations, test-api-integrations) add 172.38.0.11:5432 to their allowed-endpoints list; test-api-integrations also adds weaviate entries (172.38.0.12:8080/8301) needed for all-services healthcheck; comments updated to explain the post-NAT filtering rationale
docs/changelogs/ent-v1.4.5.mdx New enterprise v1.4.5 changelog documenting identity lifecycle, MCP per-user auth, governance UI overhaul, and OSS base additions; file is properly registered in docs.json
docs/changelogs/helm-v2.1.20.mdx New Helm v2.1.20 changelog noting the authServerType field addition to values.schema.json; properly registered in docs.json
docs/docs.json Both new changelog pages added to the top of their respective navigation sections (Enterprise and Helm), maintaining newest-first ordering

Reviews (1): Last reviewed commit: "read me updates and hardening fixes" | Re-trigger Greptile

akhsaul pushed a commit to akhsaul/bifrost that referenced this pull request Aug 27, 2026
## Summary

Fixes CI failures caused by `harden-runner`'s egress-policy blocking Postgres connections in the release pipeline. Because `harden-runner` filters on the post-NAT destination IP, host processes dialing `127.0.0.1:5432` are actually reaching Postgres at its Docker bridge IP after DNAT. The Postgres container now has a pinned bridge IP (`172.38.0.11`) and that IP:port is explicitly added to the `allowed-endpoints` list for every release-pipeline job that connects to Postgres (`test-migrations`, `test-bifrost-http`, `test-api-integrations`). This PR also adds the `ent-v1.4.5` and `helm-v2.1.20` changelogs.

## Changes

- Assigned a static IPv4 address (`172.38.0.11`) to the Postgres container in `docker-compose.yml` so the post-NAT bridge IP is deterministic and can be allowlisted.
- Added `172.38.0.11:5432` to the `harden-runner` `allowed-endpoints` in the `test-migrations`, `test-bifrost-http`, and `test-api-integrations` jobs in `release-pipeline.yml`. Added inline comments explaining the DNAT behaviour and the requirement to keep the pinned IPs in sync.
- Added `172.38.0.12:8080` and `172.38.0.12:8301` (Weaviate's pinned bridge IP) to the `test-api-integrations` job, which starts all Compose services and waits for Weaviate to become healthy.
- Added `docs/changelogs/ent-v1.4.5.mdx` covering identity lifecycle, MCP per-user auth, governance UI sheets, and OSS base `transports/v1.5.6` additions.
- Added `docs/changelogs/helm-v2.1.20.mdx` documenting the `authServerType` field addition to the Okta SCIM/SSO schema.
- Registered both new changelog pages in `docs/docs.json`.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [ ] Refactor
- [ ] Documentation
- [x] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [ ] UI (React)
- [x] Docs

## How to test

Trigger the release pipeline and confirm the `test-migrations`, `test-bifrost-http`, and `test-api-integrations` jobs complete without `harden-runner` blocking egress to `172.38.0.11:5432`. Verify Weaviate health checks pass in `test-api-integrations` with the newly added `172.38.0.12` entries.

```sh
# Verify Postgres container receives the pinned IP at runtime
docker compose -f .github/workflows/configs/docker-compose.yml up -d postgres
docker inspect <postgres_container> | grep '"IPAddress"'
# Expected: 172.38.0.11
```

## Breaking changes

- [ ] Yes
- [x] No

## Related issues

N/A

## Security considerations

The pinned IPs are internal Docker bridge addresses scoped to the CI runner's network namespace. Allowlisting them in `harden-runner` does not expose any additional external endpoints; it only permits loopback-equivalent container-to-host traffic that was already implicitly occurring via the published port mapping.

## Checklist

- [x] I read `docs/contributing/README.md` and followed the guidelines
- [x] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [x] I verified builds succeed (Go and UI)
- [x] I verified the CI pipeline passes locally if applicable
occcat pushed a commit to occcat/bifrost that referenced this pull request Sep 2, 2026
## Summary

Fixes CI failures caused by `harden-runner`'s egress-policy blocking Postgres connections in the release pipeline. Because `harden-runner` filters on the post-NAT destination IP, host processes dialing `127.0.0.1:5432` are actually reaching Postgres at its Docker bridge IP after DNAT. The Postgres container now has a pinned bridge IP (`172.38.0.11`) and that IP:port is explicitly added to the `allowed-endpoints` list for every release-pipeline job that connects to Postgres (`test-migrations`, `test-bifrost-http`, `test-api-integrations`). This PR also adds the `ent-v1.4.5` and `helm-v2.1.20` changelogs.

## Changes

- Assigned a static IPv4 address (`172.38.0.11`) to the Postgres container in `docker-compose.yml` so the post-NAT bridge IP is deterministic and can be allowlisted.
- Added `172.38.0.11:5432` to the `harden-runner` `allowed-endpoints` in the `test-migrations`, `test-bifrost-http`, and `test-api-integrations` jobs in `release-pipeline.yml`. Added inline comments explaining the DNAT behaviour and the requirement to keep the pinned IPs in sync.
- Added `172.38.0.12:8080` and `172.38.0.12:8301` (Weaviate's pinned bridge IP) to the `test-api-integrations` job, which starts all Compose services and waits for Weaviate to become healthy.
- Added `docs/changelogs/ent-v1.4.5.mdx` covering identity lifecycle, MCP per-user auth, governance UI sheets, and OSS base `transports/v1.5.6` additions.
- Added `docs/changelogs/helm-v2.1.20.mdx` documenting the `authServerType` field addition to the Okta SCIM/SSO schema.
- Registered both new changelog pages in `docs/docs.json`.

## Type of change

- [ ] Bug fix
- [ ] Feature
- [ ] Refactor
- [ ] Documentation
- [x] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [ ] UI (React)
- [x] Docs

## How to test

Trigger the release pipeline and confirm the `test-migrations`, `test-bifrost-http`, and `test-api-integrations` jobs complete without `harden-runner` blocking egress to `172.38.0.11:5432`. Verify Weaviate health checks pass in `test-api-integrations` with the newly added `172.38.0.12` entries.

```sh
# Verify Postgres container receives the pinned IP at runtime
docker compose -f .github/workflows/configs/docker-compose.yml up -d postgres
docker inspect <postgres_container> | grep '"IPAddress"'
# Expected: 172.38.0.11
```

## Breaking changes

- [ ] Yes
- [x] No

## Related issues

N/A

## Security considerations

The pinned IPs are internal Docker bridge addresses scoped to the CI runner's network namespace. Allowlisting them in `harden-runner` does not expose any additional external endpoints; it only permits loopback-equivalent container-to-host traffic that was already implicitly occurring via the published port mapping.

## Checklist

- [x] I read `docs/contributing/README.md` and followed the guidelines
- [x] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [x] I verified builds succeed (Go and UI)
- [x] I verified the CI pipeline passes locally if applicable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants