Configuration
Tiago Águeda edited this page 2026-11-12 15:30:10 +01:00

Page revisions

67 Commits

Author SHA1 Message Date
7be9b3a2ab
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>
2026-11-12 15:30:10 +01:00
d829eff65b
Describe following another calendar
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>
2026-11-12 07:32:55 +01:00
0de29e0a12
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>
2026-11-11 16:19:04 +01:00
3ec61c153f
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>
2026-11-11 16:17:58 +01:00
abeb4896d8
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>
2026-11-11 16:16:47 +01:00
b39438f2e1
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>
2026-11-11 16:15:08 +01:00
54a83da1cd
Writing a plugin, Configuration, Tracking applications: pairing by hand (postulo/postulo#327) 2026-10-31 10:53:09 +01:00
55f71bf6b1
Register lookup: a company looked up in its register on a press, and the register-adapter plugin kind (postulo/postulo#1021) 2026-10-28 05:31:02 +01:00
163918a9d2
Your career record: publications filled in from a DOI or an ORCID record, on a press (postulo/postulo#688) 2026-10-28 05:30:49 +01:00
9c600a8a45
Configuration: language picker groups forms under one language, bare codes get the main form (postulo/postulo#1053) 2026-10-27 23:52:26 +01:00
2511fbc83f
Street look-ups: POSTULO_GEOCODER and POSTULO_GEOCODER_URL (postulo/postulo#913) 2026-10-27 16:13:59 +01:00
51254131ab
Calendar files leave notes and attendees out; photo metadata box; seed_demo password; capture links
Refs postulo/postulo#963
Refs postulo/postulo#964
Refs postulo/postulo#980
Refs postulo/postulo#962

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 00:01:04 +02:00
28573ba311
The API is never cached, bounds free text, counts wrong tokens everywhere, and a shared company's rename is rate-limited
Refs postulo/postulo#949 postulo/postulo#950 postulo/postulo#951 postulo/postulo#952 postulo/postulo#953
2026-10-17 17:28:40 +02:00
db47f228af
Sharing lookup allowance, group members listed and logged
Refs postulo/postulo#943
Refs postulo/postulo#945
Refs postulo/postulo#947

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 17:13:38 +02:00
4ab1bf0176
Backups: an unsigned archive needs --unverified; unknown download rule refused
Refs postulo/postulo#974
Refs postulo/postulo#978

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-17 16:17:27 +02:00
410e47650b
Configuration: the map's tile credit is the end of the footer's line
Refs postulo/postulo#908
2026-10-13 10:03:42 +02:00
be5c67110f
Addresses on the map, and a company's location as its address
Refs postulo/postulo#702

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:53:37 +02:00
e1bb346c5d
Describe the security round: API limits, metrics token, backups, uploads, proxies
Refs postulo/postulo#799
Refs postulo/postulo#800
Refs postulo/postulo#801
Refs postulo/postulo#810
Refs postulo/postulo#812
Refs postulo/postulo#813
Refs postulo/postulo#815
Refs postulo/postulo#817

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 17:36:35 +02:00
0f9a50a8dd
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>
2026-10-12 17:20:06 +02:00
431e2b5f1a
Describe modules, dependencies, Settings buttons, access lists and packages
Refs postulo/postulo#873
Refs postulo/postulo#874
Refs postulo/postulo#875
Refs postulo/postulo#876
Refs postulo/postulo#877
Refs postulo/postulo#883
Refs postulo/postulo#884
Refs postulo/postulo#885
Refs postulo/postulo#886

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 11:17:25 +02:00
ee6e8bd0e9
Correct the pages for the Hardening, Career ordering, Installing, Configuration, plugin, Roadmap and Troubleshooting issues
Refs postulo/postulo#537 postulo/postulo#613 postulo/postulo#540 postulo/postulo#584 postulo/postulo#404 postulo/postulo#405 postulo/postulo#406 postulo/postulo#765 postulo/postulo#745 postulo/postulo#764

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 08:48:16 +02:00
5a2c90f8b2
Document plugin calendar entries and links, the new settings, backup signing and the renames
Refs postulo/postulo#887 postulo/postulo#889 postulo/postulo#780 postulo/postulo#786
Refs postulo/postulo#772 postulo/postulo#881 postulo/postulo#882

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 17:47:23 +02:00
8a9f4ff98f
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>
2026-10-11 07:16:00 +02:00
97c293849b
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>
2026-10-10 21:26:53 +02:00
847ffd549a
Say the official plugin repository is there and switched off
Refs postulo/postulo#729
2026-10-10 12:04:55 +02:00
9eabad30de A kept page goes with the listing its capture became (#664)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 21:28:10 +02:00
febed195d5 Document managing backups from Server settings (#242)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 07:19:32 +02:00
691c9d9ac6 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>
2026-10-06 05:53:28 +02:00
b8ace4fda9 Say that the companies' map can be switched off and what it sends (#700)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 17:30:11 +02:00
6ece50cad8
Document POSTULO_FETCH_RATE and the default language and zone labels
Refs postulo/postulo#407, postulo/postulo#698, postulo/postulo#398

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 22:41:54 +02:00
a324b4a6a6
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#361 postulo/postulo#546

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:14:09 +02:00
41afccc105
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#581 postulo/postulo#582 postulo/postulo#403 postulo/postulo#358
Refs postulo/postulo#360 postulo/postulo#363 postulo/postulo#474 postulo/postulo#539

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 12:04:57 +02:00
0ab6c352f0
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>
2026-10-04 10:53:46 +02:00
139aa95ffb
Configuration: the start-up check of the mail provider and grant
Refs postulo/postulo#487

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 02:28:37 +02:00
56d1f0454d
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>
2026-10-03 21:20:18 +02:00
bdfc100adf
Show the internal location with the file headers
Refs postulo/postulo#415
2026-10-03 18:53:17 +02:00
05eef9f47b
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>
2026-10-03 03:33:35 +02:00
0cc2583605
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>
2026-10-02 02:40:22 +02:00
65b7cc0dd8
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>
2026-10-02 02:02:41 +02:00
9c4dd0ff1e
Say that Django's admin has no login of its own
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>
2026-10-01 23:41:38 +02:00
234b550b29
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>
2026-10-01 16:53:14 +02:00
2cfd630e1c
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>
2026-10-01 16:23:00 +02:00
faefabcd2c
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>
2026-10-01 15:27:01 +02:00
cb11a940d2
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>
2026-09-29 23:34:12 +02:00
b4e6b0e3bd
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>
2026-09-29 19:21:04 +02:00
75174c4f23
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>
2026-09-29 19:10:37 +02:00
7d06b812aa
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>
2026-09-29 14:15:01 +02:00
4a169ac203
Document where the map's city table lives, and how the container gets it 2026-09-24 19:45:43 +02:00
4efa789f60
Configuration, logs and troubleshooting: request ids, POSTULO_LOG_FORMAT, the start-up checks
Refs postulo/postulo#233

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 15:51:02 +02:00
d9045d28ec
Webhooks: the request, the events, verifying the signature, a sample receiver
Refs postulo/postulo#240

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 15:26:23 +02:00