Skip to content

ci: allow Appwrite's URL resolver in the hardened scenario - #25

Merged
levivannoort merged 1 commit into
mainfrom
fix/hardened-url-resolver
Oct 14, 2026
Merged

levivannoort merged 1 commit into
mainfrom
fix/hardened-url-resolver

Conversation

@levivannoort

Copy link
Copy Markdown
Member

What

Follow-up to #24, merged before this commit landed. With the browser on by default, every install scenario now takes a screenshot in hack/smoke.sh. In hardened (egress restricted) the API refused it with 400: Invalid url param: Hostname example.com does not resolve.

That's Appwrite 2.4.0+ behaviour. Before fetching an avatar, screenshot or migration URL, Appwrite checks the host through its own resolver (_APP_DNS_EXTERNAL, by default 8.8.8.8), which the egress policy blocked. Users with networkPolicy.egress.enabled hit the same 400.

  • ci/hardened-values.yaml allows 8.8.8.8 on port 53, as docs/networking.md tells users to.
  • docs/troubleshooting.md (Site deployments log "Screenshot capturing failed") names the error and points to the setting.

skip-changelog: CI values and docs only.

Until this merges, main's hardened install scenario fails on the screenshot.

Testing

  • helm lint --strict with the hardened values; the egress policy renders the extra rule.
  • The hardened scenario in this PR's CI is the real test.

With the browser on by default, the smoke test takes a screenshot in every
scenario. Under restricted egress the API refused it with 400 ("Hostname
example.com does not resolve"): Appwrite 2.4.0 and later check avatar and
screenshot URLs through _APP_DNS_EXTERNAL (8.8.8.8), which the policy
blocked. The hardened values now allow it, as docs/networking.md tells users
to, and troubleshooting names the error.
@levivannoort levivannoort added the skip-changelog Changes users won't notice: no CHANGELOG.md entry needed label Oct 14, 2026
@hansi-codes

hansi-codes Bot commented Oct 14, 2026

Copy link
Copy Markdown

🟢 Tier S · Ready to merge

The hardened CI values now allow Appwrite's external URL resolver over DNS, and the troubleshooting guide documents the corresponding hostname-resolution error for site screenshots. The networking guide already describes the resolver and the extra egress rule.

Verdict New comments Fixed Still open
✅ Approved 0 0 0
📂 Walkthrough · 2
File Change
charts/appwrite/ci/hardened-values.yaml Allows UDP and TCP DNS traffic to 8.8.8.8 in the hardened scenario.
docs/troubleshooting.md Adds guidance for the URL-resolver hostname error during screenshot capture.
🔇 Filtered out · 1

Findings Hansi considered but did not post.

Finding Why
Mention that networkPolicy.enabled is also required Verifier: The dependency is real (egress.yaml:2 requires both flags), but this is a minor clarification rather than a broken troubleshooting procedure: the text identifies restrictive egress as a possible cause and does not instruct users to enable the child flag alone. The prerequisite is already explicit in values.yaml:2264–2265 and in the policy table at networking.md:314, accessible through the linked networking guide. Reporting the omitted parent flag here would be nitpicky.

Reviewed 875529f · Details · Comment @hansi-codes review to re-run, or mention @hansi-codes with a question.

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Tier S · Looks good to merge. Summary

@levivannoort
levivannoort merged commit 0e93a9e into main Oct 14, 2026
19 of 28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Changes users won't notice: no CHANGELOG.md entry needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant