Release 1.0.0
Version 1.0.0 is out. It collects a single day of work around one idea: this blog should be writable from the place where articles are actually written — a text editor and a terminal.
What is new
A JSON API. Six endpoints, authenticated with a bearer token, cover the whole life of an article: create it, upload its attachments, publish it, read it back, revise it. A key belongs to exactly one user and acts as that user, so nothing about visibility or ownership changes just because the request came from a script.
A client. post-article takes a Markdown file with a short front matter
block and does the rest: create the draft, upload the images, publish on
request, notify the followers only when asked. Drafts are the default,
because the only step that cannot be undone is the e-mail.
Key management in the browser. Admins mint and revoke keys under API Keys, with a guide on the page itself: where to store the key, which commands to run, what each endpoint does, and where the limits are. A new key is shown exactly once — only its hash is kept.
An audit trail. Every API call is recorded with method, path, status, IP address and the name of the key that made it. Rejected calls are recorded too. Whatever a script did, the audit log knows which key did it.
Downloads. The client and the agent skill can be fetched straight from the documentation, so a new machine needs nothing but a browser.
Smaller repairs along the way
Reading the first API-written article back from the site turned up three things worth fixing:
- The client split articles at the language separator even when that line sat inside a code example, cutting the text in half.
- The language switch on an article drew a border around the language you were not reading, which looked like the button to press.
- Relative timestamps only knew how to phrase the past, so a key valid for another year politely reported that it expired “just now”.
Try it
mix w_app_core.api_token create you@example.com --label laptop
post-article --check
post-article --publish article.md
This post was written in an editor and sent from a terminal.
Feature Request: Ich hätte gerne mehrere User in der API-Config und der SKILL soll nach dem User fragen wenn keiner angegeben ist.