• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

astronomer / astro-cli / 38497463164
61%
main: 45%

Build:
Build:
LAST BUILD BRANCH: v2-build-on-locked-runtime
DEFAULT BRANCH: main
Ran 14 Oct 2026 01:49AM UTC
Jobs 1
Files 333
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Oct 2026 01:45AM UTC coverage: 57.836%. Remained the same
38497463164

push

github

web-flow
Open local Airflow 2 without a login page (#2307)

* Add the local Airflow login that Astro Desktop's proxy uses

AirflowSessions logs a proxy into the local Airflow behind each route with the local admin account from pkg/airflowrt: a bearer from Airflow 3's /auth/token, or the session cookie from Airflow 2's login form. It caches one session per backend port, collapses a burst of logins into one, retries a failed login after two seconds, and its Transport replays a rejected request once with a fresh session, never a request whose body can't be reproduced.

The code and its tests come from Astro Desktop, which uses them on its hostname and iframe proxies. Here it is not wired into the proxy yet. pkg/proxy now imports pkg/airflowrt for the account, declared in docs/architecture.md beside instances, which takes it for the same reason.

Co-Authored-By: Claude <noreply@anthropic.com>

* Open local Airflow 2 through the proxy without its login page

Every proxy now logs into the Airflow behind each route itself, through a Sessions field NewProxy fills in: it injects the session on each request before a host's ModifyRequest hooks, and wraps the host's transport with the recovery pass, so a host's transport settings carry the replay too. A project's Airflow 2 opened at its .localhost address lands in Airflow rather than at its login page, as it already does in Astro Desktop. Airflow 3, which every local engine runs with all users as admins, behaves as before: one token request per backend, then the same pages.

A host that relays the same backends through proxies of its own sets one shared Sessions on all of them, so each backend is logged into once; nil turns the login off. injectSession's comment says what this does and why it is acceptable on a local development proxy.

Co-Authored-By: Claude <noreply@anthropic.com>

* Treat a refused Airflow 2 login as a failure

Flask-WTF sets an anonymous session cookie on GET /login to hold the CSRF token, so after th... (continued)

40242 of 69579 relevant lines covered (57.84%)

234.59 hits per line

Jobs
ID Job ID Ran Files Coverage
1 38497463164.1 14 Oct 2026 01:49AM UTC 333
57.84
GitHub Action Run
Source Files on build 38497463164
  • Tree
  • List 333
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38497463164
  • 0f6732f8 on github
  • Prev Build on v2 (#38496205402)
  • Next Build on v2 (#38498144568)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc