Describe the registry of variables and how a value is written
Every variable is now declared in one registry, .env.example is
written from it, and manage.py settings prints what an instance runs
with. Say which value syntaxes are accepted and what the new start-up
checks W005, W006, W007 and E009 report.
Refs postulo/postulo#1186
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a section on Calendar -> Subscriptions to the calendar part of
Tracking applications: adding an address, private addresses, the card,
failing addresses, read-only events made your own, what is left out,
the address kept out of the archive, and the download. Configuration
says the private-address switch covers subscriptions too.
Refs postulo/postulo#1098
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe what is kept on the data volume, and SQLite's upkeep
Configuration says what fetch_geonames leaves behind and when postulo.W003
is raised, and gains a section on looking after a SQLite database with
manage.py compact_database. Files and Backups name the .partial file an
export is built under and the gzip level of a backup.
Refs postulo/postulo#1124
Refs postulo/postulo#1125
Refs postulo/postulo#1127
Refs postulo/postulo#1128
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Bring the scheduler's and the worker's habits up to date
Files and Configuration say how often uploads are checked and orphans looked
for, add POSTULO_SCRUB_EVERY_DAYS, and say what is now tidied by itself: the
queue's finished tasks, expired cache entries, a slow store's backlog. A
notification that failed is tried again, an idle worker is quiet, and Writing
a plugin says what that means for a notifier's send().
Refs postulo/postulo#1118
Refs postulo/postulo#1119
Refs postulo/postulo#1121
Refs postulo/postulo#1167
Refs postulo/postulo#1163
Refs postulo/postulo#1117
Refs postulo/postulo#1172
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Name the two new warnings, and what is read once and kept
Configuration and Installing Postulo name postulo.W003 and postulo.W004, give
the occupations file its new size, and say when the Overview asks the fonts
again. Writing a plugin says that the primary number and link of a contact
are read from prefetched rows.
Refs postulo/postulo#1109
Refs postulo/postulo#1110
Refs postulo/postulo#1171
Refs postulo/postulo#1133
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Say how a killed backup, a failing sync and a silent worker behave
Backups gain the .partial file an archive is written under and the ten-minute
claim of a running backup; Background work says when an interrupted errand is
marked failed and what its page says while no worker is seen. Syncs gain the
back-off of a failing connection, for the person and for a plugin author, and
what add_reminder returns.
Refs postulo/postulo#1123
Refs postulo/postulo#1131
Refs postulo/postulo#1122
Refs postulo/postulo#1162
Refs postulo/postulo#1164
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Configuration: the map is drawn by Leaflet over OpenStreetMap tiles by default
The three POSTULO_MAP_TILE* variables, the Maps settings page, and what
OpenStreetMap learns from each viewer.
Refs postulo/postulo#898
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the footer's motto, the releases link and what the phone shows
The footer's line is the administrator's motto (default "your job search, your data"), left out on
phones, and "Powered by Postulo" carries no version and links to the releases.
Refs postulo/postulo#835, postulo/postulo#836
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Say that single sign-on links by address only when turned on, and the db container's .env
Linking by email address is off by default since 0.6.0 (postulo/postulo#892), with the
start-up warning for an instance that has a provider and has not chosen; and the PostgreSQL
profile's database container is handed the whole .env, which Hardening now states and says how
to close (#791).
Refs postulo/postulo#892, postulo/postulo#791
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Show the interface the pages describe, with pictures generated from a demo instance (#353)
Thirty-four pictures from scripts/screenshots.py in the postulo repository, each with alternative text, placed beside the text that describes it. Never retake one by hand: run the script.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Your own email now sends from the record page; company names are compared without capitals
Configuration, Writing-a-plugin, Files-and-what-you-sent: the Email these step on Record what
you sent (sent first, frozen and recorded only if it went, an outbox plugin raises on failure).
Installing-Postulo: company and department names are unique ignoring capitals and spacing, the
upgrade stops and lists any clash, and manage.py company_name_clashes lists them beforehand.
Refs postulo/postulo#361postulo/postulo#546
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Installing, Configuration, Hardening: the PostgreSQL file, the worker, the :0.3 image, one upgrade path per install
The PostgreSQL install reads POSTGRES_PASSWORD from the root .env and has a worker of its own;
every command names the file the instance was started with. The image pin is :0.3 and the
registry and source-build upgrade paths are told apart and never combined. Your own email starts
on STARTTLS and refuses a password in the clear; the operator's host exemption is for the
instance's own transport only; a redirect on a pinned request keeps the site's name; a stop
signal ends the worker and a killed worker's errands are failed after a day.
Refs postulo/postulo#581postulo/postulo#582postulo/postulo#403postulo/postulo#358
Refs postulo/postulo#360postulo/postulo#363postulo/postulo#474postulo/postulo#539
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Hardening, Configuration, Installing: what the server dials, and the GeoNames switch
Capture is no longer called the only outbound request; Hardening lists what the core dials and
what turns each off; Configuration gains POSTULO_SKIP_GEONAMES and says the entrypoint follows
POSTULO_GEOLOCATIONS_DIR.
Refs postulo/postulo#366
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Say what an administrator is trusted with, and what Django's admin holds
An administrator sees accounts and never anyone's records in Server settings, but is
trusted with the instance because they install plugins. Appointing one no longer makes
them a superuser, and the admin holds accounts, invitations and token metadata only.
Adds the command that clears the flag from administrators appointed earlier.
Refs postulo/postulo#368
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Say how an instance defines identifier schemes of its own
Configuration: the JSON, the pattern language and its budget, what is refused and how it
is said, what deleting or changing a scheme does to what is stored, where the text is
kept. Writing a plugin: what a reader of the registry now meets. Design: a dialog with a
page behind it, and a box of code. Backups, the API, Your career record and Tracking
applications: what happens to identifiers of a kind this instance lacks.
Refs postulo/postulo#311
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a postal address is checked against its country
Your career record: a section on the address rows -- what is refused, that a street is
never required and a town and a country are enough, how a postcode is put right, the
forces and territory forms, and that a stored or imported address is marked and left
alone. The same said shortly in Configuration, Getting started and Backups; the
address-line grid in Design; and in Writing a plugin, what postal-rules governs and
that a word shared with Postulo needs a context.
Refs postulo/postulo#306
Refs postulo/postulo#635
Refs postulo/postulo#458
Refs postulo/postulo#651
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how much log is kept, and why earlier versions kept less
The size is per file: about twenty megabytes by default, not five. Up to
0.3.0 each process rotated the file on its own and most of it was lost.
Refs postulo/postulo#379
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Where an operator mounts the admin, it sends whoever is not signed in to
Postulo's sign-in and brings them back afterwards. So an administrator is
asked for their code, needs a confirmed address, and is held to the same
limits on failed attempts as everybody else. Three pages said its login was
rate-limited, which described a form that is gone: Hardening, Accounts and
invitations, and the `POSTULO_ADMIN_URL` row of Configuration.
Refs postulo/postulo#367
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say Enabled and Disabled about a plugin, and that a caution is an amber pill
The switch is labelled Enabled, what is off wears a grey Disabled pill,
and the amber pills are badges.
Refs postulo/postulo#311
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say that every language is ticked while nothing is narrowed, and that a region is kept
On a new instance the Defaults page shows every box ticked and saving it
as shown changes nothing; a refused save leaves the card above it as
stored; a partly translated language keeps its region.
Refs postulo/postulo#322
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say what a fetch refuses, how long it waits, and what an import does with a username
Addresses that carry a private one are refused; a page, its robots.txt
and a logo are held to a whole-download time as well as a size; only
gzip and deflate are unpacked; an archive's username is taken only when
the rules allow it; and Python 3.12.4 is the oldest Python.
Refs postulo/postulo#321
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the bar under each language on Server settings -> Defaults
Reviewed, draft and untranslated, drawn as a bar with the counts written
beside it.
Refs postulo/postulo#312
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say what the foot of every page shows, and what it no longer tells a stranger
Configuration gains the two settings the footer reads (where its source
code is, and a legal notice when there is one) and a section on what
the foot of every page holds. Hardening gains *What a stranger is
told*: the version is shown only to people signed in, and `/healthz`
still reports it for monitoring. Installing Postulo and Troubleshooting
stop saying the version is in the footer for everybody, and Installing
says a modified Postulo should point `POSTULO_SOURCE_URL` at its code.
Refs postulo/postulo#212
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a skill's name is recognised as an ESCO skill, and what a CV prints for it
Your career record gains *Skills the classification knows*: the box
offering the classification's names as you type, what recognition
means and what it never guesses, and skills recorded before it. It
also says a skill the classification knows is the one exception to an
untranslated entry printing its original, and that a candidate file is
now format 2 and carries the identifier without ever reading it back.
CVs says when a CV in another language prints the classification's name
for a skill. Installing Postulo says the classification is two files,
written together or not at all, and Configuration gains the rate limit
on the skill box's suggestions.
Refs postulo/postulo#266
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a capture keeps the page it was read from, and what keeps that page harmless
Capturing postings gains *Keeping the page*: the source and a
rendering, both off until an administrator and then the person switch
them on, where the kept page is, how long it stays and the account's
ceiling. Its two sentences that still called the browser extension
planned now point at the one that exists.
The capture API documents `keep` and the `page` member of a capture,
the `PUT` that sends a rendering with its answers, the three problem
types it adds, the `413` a request too large for the API now gets, and
what the extensions send today. Configuration lists the six settings
and why keeping is off by default; Hardening says why a kept page never
runs as the stranger's code; the metrics page counts kept pages.
Refs postulo/postulo#256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>