log
notes on what we build, how it works, and what we learn doing it.
filterall
the third note in the cyberwitchery paper series. a compiler for
carp, written in carp, that builds itself and runs as a library behind
editors and
notebooks.CW:003 · experience report · v1.0
in which we help out the imaginary person in charge of choosing a new dcim system
in this post, we follow one unmaintained-crate advisory through the
org, and what it took to retire
it.RUSTSEC-2024-0449
in this post, we examine the ci we run in every
repo.cargo install sbom-diff unsafe-budget
0.10.0, a first demo, and alembic inside netbox and
nautobot.cargo install alembic-cli
use alembic together with prometheus and grafana to easily collect and visualize metrics about all of the devices in your system
every secret stores a pbkdf2 hash of its own plaintext at 1000
iterations, and the rest api hands that hash to anyone who can view the
secret. reported july 22, still unpatched, published at the end of a
60-day
window.netbox-secrets ≤ 3.1.1 · unpatched · cve requested
the second note in the cyberwitchery paper series. can a drawing
machine learn one artist’s quick love/meh/hate judgments well enough to
change what it draws
next?CW:002 · case study · v1.0
a fabric shows up as an ansible inventory, a nornir directory, a
prometheus target list, an ssh config, a dns zone, a containerlab
topology, two diagrams and an avd project. we emit all nine from a
single data model model.cargo install alembic-cli
0.9.0: a larger team, identity through uid, and an operating guide
for agents.cargo install alembic-cli
architecture diagrams drift because they’re drawn by hand. the ones
in this post are emitted from the same model that drives the fabric.
text-first, diffable, regenerated on every
run.cargo install alembic-cli
the first note in the cyberwitchery paper series. what happens to the
trolley problem when the people on the tracks remember what you did, and
once held the lever
themselves.CW:001 · lab note · v1.0
the two tools don’t agree on a model. locations vs sites, status as a
reference vs a string. a migration between them is a translation rather
than an export. alembic has a map that does
it.cargo install alembic-cli
three releases, a see-before-write for schema, and files that refuse
typos.cargo install alembic-cli
apply is the only step that writes. half-finished apply stays safe
with a journal that resumes, writes safe to repeat, and an adapter whose
only job is to fail.cargo install alembic-cli
an external adapter is a process alembic spawns that speaks json over
stdio. we offer sdks in rust and
pythonpip install alembic-adapter-sdk
a monthly log of what moved in alembic and the tools around it. this
first issue sets the
baseline.cargo install alembic-cli
encode untrusted strings for the context they land
incargo add contextual-encoder
a cron-driven claude code agent that opens and reviews a small slate
of prs each
cyclegit clone git@github.com:cyberwitchery/cwl-agents
browse, search, and edit lepiter knowledge bases from your
terminalcargo install lepiter-cli
parse and diff network configs, catch drift before it
bitescargo install netform_cli
sync your infrastructure data across netbox and
nautobotcargo install alembic-cli
keeps the unsafety demons
outcargo install unsafe-budget
diff your sboms, catch surprises before they
shipcargo install sbom-diff
talk to infrahub from rust, with typed graphql
operationscargo add infrahub
interact with nautobot in your code and
clicargo add nautobot
interact with netbox in your code and cli
cargo install netbox-cli
compose and invoke agent prompts from reusable templates: conjurings
+ invocations. pip install familiar