Skip to content

v0.1.0

Choose a tag to compare

@kubed-io kubed-io released this 12 Sep 20:33
· 62 commits to main since this release
bd39825

Publish
Image Builder
Tests
Quality

0.0.2 could drive a browser. This one lets an agent keep what it worked out.
Save a sequence of steps as a named flow, give it parameters, and run the whole
thing in one call — including steps that type a credential the model is never
shown. The admin UI grew a panel for reading and editing them.

Added

  • Saved flows. Save a sequence of steps under a name and run the whole thing in one call with run_flow — a twelve-step form becomes one call instead of twelve. Set FLOW_DATA_DIR to turn them on.

  • Flows take parameters. Declare them and write ${name} in any argument of any step — url: ${site}/orders/${id} — so one flow serves every account and every environment.

  • Type a secret you never see. Give write a secret naming one instead of text, and the server reads it and types it, in a flow step or a single call. It never becomes an argument string, so it cannot be assembled into one by mistake.

  • A secrets catalogue. Point SECRETS_DIRS at a directory per secret and a file per key — the shape Kubernetes already mounts — and list_secrets shows an agent what it may use. A secret can be leashed to the sites it is allowed on. Values are never returned by anything.

  • A shared global flow library every session can list and run, which only an operator can change.

  • Kept files. keep_file copies a download out of the browser so it survives the browser being reaped, switched or ended, and session_files lists both kinds together.

  • The admin UI reads and edits flows. Every session's flows beside its files: what a flow takes, what it does, and what any step or parameter holds. Edit the YAML, move a flow to or from global, or delete it.

  • CSS selectors. Every tool that acts on an element now takes css as well as xpath — pass one or the other.

  • A flow run answers with the steps you marked return: true — any number of them, and nothing else.

  • screenshot(save=true) now tells you what the file was called, which is the name keep_file takes.

  • The built-in skill teaches flows and secrets, and the wiki documents them with a page per endpoint.

Changed

  • HTTP errors now say whose fault they are: 400 for a request you can fix, 404 for a browser that has ended, 503 for a Grid that is unreachable or full. They were all 500.

  • Clear downloads lists exactly what it will remove before it removes it.

  • Error messages no longer carry the driver's stack trace.

Fixed

  • A browser stays usable after logging in. Chrome's "Save password?" prompt took the keyboard and mouse for itself, so every click and keystroke after a login silently did nothing — while every call still reported success.

What's Changed

  • fix: classify HTTP failures by what the caller should do by @kferrone in #8
  • Flows: Chapter 1, and css selectors as the first slab by @kferrone in #9
  • Flows E1: the store, and the naming rules around it by @kferrone in #10
  • Flows E2: the document, its CRUD, and the plan for secrets by @kferrone in #11
  • Flows E3: run a saved flow by @kferrone in #12
  • Secrets E7: the catalogue, plus three leaks the last round missed by @kferrone in #13
  • Secrets E9: a flow can type a secret it is never shown by @kferrone in #14
  • Ground school (E6 + E10): the skill teaches flows and secrets by @kferrone in #15
  • Kept files E4: a file that outlives the browser that made it by @kferrone in #16
  • Flows: the shared global library is read-only to every agent by @kferrone in #17
  • Admin UI: the page the Penpot file designed by @kferrone in #18
  • Wiki: flows, secrets and kept files exist now by @kferrone in #19
  • Flows: a parameter is text, a secret is structural by @kferrone in #20
  • Admin UI: flows go live, counts stop lying, and a cleanup pass by @kferrone in #21
  • Admin UI: a flow shows what it takes, and the image builds 4x faster by @kferrone in #22
  • Flows: defaults are applied, a script reads as code, and an error names its escape by @kferrone in #23

Full Changelog: v0.0.2...v0.1.0

Container image

The image is what this repo ships, and what the cluster runs:

docker pull kubed/selenium-flow:v0.1.0

Python package

Not on PyPI. The wheel and sdist are attached to this release:

pip install https://github.com/kubed-io/selenium-flow/releases/download/v0.1.0/kubed_selenium_flow-0.1.0-py3-none-any.whl

Or straight from the tag:

pip install git+https://github.com/kubed-io/selenium-flow.git@v0.1.0