Commit Graph

  • b0230e6847 Replaced the Title filter with a general search, run by the backend main v1.1.0 bwilliams 2026-10-22 13:10:25 +01:00
  • 0a777792d8 A CPV code is now stored once, keeping its longest description bwilliams 2026-10-22 09:56:01 +01:00
  • b0f93fd437 config init now leaves out the test sources unless given --all bwilliams 2026-10-21 16:22:45 +01:00
  • f467c6c7da The release tarball's files are now owned by root, not the user who built it bwilliams 2026-10-21 16:07:21 +01:00
  • 71eca2f194 Terminal logging is now coloured only on an interactive terminal v1.0.0 bwilliams 2026-10-21 15:39:36 +01:00
  • 2aeb2993b0 Added a systemd unit and logrotate configuration, packaged in the release bwilliams 2026-10-21 15:31:35 +01:00
  • 1e3acaeff3 A .env file in the working directory is now optional bwilliams 2026-10-21 15:28:52 +01:00
  • 0b1952bd69 Halved the table cells' horizontal padding bwilliams 2026-10-21 15:19:49 +01:00
  • 7543d85de4 Shortened the table's "Values" with k, m and bn suffixes bwilliams 2026-10-21 15:14:57 +01:00
  • 3bb2711276 Added the closing date to the table, and narrowed its columns to fit bwilliams 2026-10-21 14:47:56 +01:00
  • c678b02662 The fetcher's "saved opportunities" and "fetched opportunities" lines now name the source bwilliams 2026-10-21 14:36:22 +01:00
  • 50ee510520 Start and end dates are now the contract's, with a new closing date bwilliams 2026-10-21 14:31:12 +01:00
  • 43f9ef3223 Labelled an opportunity's ID as an OCID only when it is one bwilliams 2026-10-21 14:15:04 +01:00
  • 64886a2f1e Added links to EU Supply tenders, as there are to Find a Tender notices bwilliams 2026-10-21 14:14:47 +01:00
  • 3a06132071 Added an EU Supply source, scraping the UK portal's public tenders bwilliams 2026-10-21 13:57:54 +01:00
  • 5c62376b6e Made the table's columns sortable bwilliams 2026-10-21 12:47:25 +01:00
  • c09c30ae71 Added a backfill in 7-day windows, and fetches now keep their data on a failure bwilliams 2026-10-21 12:40:39 +01:00
  • ff2aa316b5 Made the classification picker a tree, where ticking a code selects its whole branch bwilliams 2026-10-21 12:39:22 +01:00
  • 4db268550b Fixed releases with 1e9999 ("no limit") being skipped as unreadable bwilliams 2026-10-21 09:34:44 +01:00
  • 79efcb5e91 Avoid printing the whole JSON response if it is over 1024 characters in length (print the length instead). This was resulting in huge log files. In addition, log any failing unmarshalls of releases (at debug level) as well as the error (at warn level) bwilliams 2026-10-21 09:34:01 +01:00
  • 0543762330 Added skip rules, which mark new opportunities Skipped when they're fetched bwilliams 2026-10-20 08:55:19 +01:00
  • 2e6c21f9dd Swapped the order of the details and "Find a Tender" link buttons bwilliams 2026-10-19 10:40:27 +01:00
  • f8648d765a Added a dialog with each opportunity's details and releases bwilliams 2026-10-19 10:32:33 +01:00
  • 6fbf7e56b2 The classification filter now offers only the loaded opportunities' classifications bwilliams 2026-10-19 10:19:34 +01:00
  • 0819fb442b The filters are now remembered in localStorage bwilliams 2026-10-19 10:11:19 +01:00
  • 746fa0a9c1 Added a "Published in the last X days" filter, applied by the backend bwilliams 2026-10-19 10:05:45 +01:00
  • b8244da2e5 Added a "Hide all visible" button bwilliams 2026-10-19 09:47:49 +01:00
  • b1cc9745ba Code Conventions change: A new package now goes in the same change as the code that needs it bwilliams 2026-10-19 09:47:21 +01:00
  • e98f18b790 Added a link from each opportunity to its latest Find a Tender notice bwilliams 2026-10-19 09:38:14 +01:00
  • a6630f112f Added tests for format and storage, run in UK time bwilliams 2026-10-16 16:46:08 +01:00
  • 13232bb15c Added tests for the opportunities' catch-up and the toasts bwilliams 2026-10-16 16:41:10 +01:00
  • f9064511b0 Added tests for web/src/api bwilliams 2026-10-16 16:37:58 +01:00
  • 60643546f6 Added tests for web/src/lib bwilliams 2026-10-16 16:29:08 +01:00
  • 67e2c96ca7 Added an SME suitable filter bwilliams 2026-10-16 16:26:32 +01:00
  • 49dd11be56 Errors now show as toasts in the bottom right corner bwilliams 2026-10-16 16:22:19 +01:00
  • 115ee29a85 Added Vitest to web/, ready for tests bwilliams 2026-10-16 16:16:27 +01:00
  • 65e5bc6b26 Added database.change_batch_retention, deleting old change batches bwilliams 2026-10-16 16:10:32 +01:00
  • 1988d07a29 Ran the installed ocdsgen, and added a script that installs the dev tools bwilliams 2026-10-16 16:03:48 +01:00
  • 5e6c011ecb Embedded the frontend in the binary, and built it in the build script bwilliams 2026-10-16 16:03:15 +01:00
  • 1832ea7437 Added the frontend in web/, following its code conventions, with linting and generated backend types bwilliams 2026-10-16 16:01:38 +01:00
  • 9905ffb4cb Served the frontend's build output from server.frontend.dir bwilliams 2026-10-16 16:00:34 +01:00
  • 155b84caea Added change batches, so clients can catch up on changed opportunities bwilliams 2026-10-16 15:25:48 +01:00
  • 51d6470649 Added a ClassificationsUpdated event bwilliams 2026-10-16 15:24:37 +01:00
  • aa06b94870 Removed the message size limit from ws-test dial bwilliams 2026-10-16 15:23:49 +01:00
  • 0e27d2b2f3 Added api/classifications endpoint, requiring a new query bwilliams 2026-10-16 14:44:12 +01:00
  • 378ac59f41 Fixed some lint and code convention violations bwilliams 2026-10-16 14:43:37 +01:00
  • af7880ceac Backend API updated to indicate nullable fields bwilliams 2026-10-16 14:38:48 +01:00
  • e32e270db0 Added a convention that sentinel errors go near the top of the file, and applied it bwilliams 2026-10-16 13:23:47 +01:00
  • 848edc73e2 Published an OpportunityMarksUpdated event when an opportunity's marks change over the API bwilliams 2026-10-16 13:19:58 +01:00
  • 70d62f280e Added the opportunities REST API, read-only apart from their marks, described in OpenAPI 3.1 with swag bwilliams 2026-10-16 13:13:44 +01:00
  • 6e101d2b4d Added an events bus, and pushed OpportunitiesUpdated to WebSocket clients when the fetcher stores new opportunities bwilliams 2026-10-16 11:59:26 +01:00
  • 284a589627 Made each source start from its newest stored release, with --since as an override bwilliams 2026-10-16 11:37:09 +01:00
  • 3c4fde8dfd Added --since to job-search serve, for the sources it fetches from bwilliams 2026-10-16 11:30:56 +01:00
  • b3d20c1db0 Made the fetcher save what it fetches, with fetcher.WithStore bwilliams 2026-10-16 11:26:16 +01:00
  • eba6af680f Added config generate-csrf-key, to store a CSRF key that survives restarts and works across instances bwilliams 2026-10-16 10:53:13 +01:00
  • 18db462d89 Made the fetcher a Fetcher type with per-source config, and ran it in job-search serve bwilliams 2026-10-16 10:44:38 +01:00
  • f0c171c8a8 Added --http-upgrade and --direct to ws-test dial, so it can connect to job-search serve or ws-test serve bwilliams 2026-10-16 09:47:38 +01:00
  • 88f879d844 Made mock-fts take its base URL from --addr when --base-url isn't given bwilliams 2026-10-16 09:19:42 +01:00
  • ac44b45f06 Split fetch from jobsearch into a separate fetcher command, and renamed fetch once to fts-once bwilliams 2026-10-16 09:13:10 +01:00
  • 5e61c11eb9 Split ws from jobsearch as a separate test utility rather than a feature of jobsearch bwilliams 2026-10-16 08:58:25 +01:00
  • b714ee14d5 Fixed ws dial input error being dropped bwilliams 2026-10-16 08:52:45 +01:00
  • 02e3d910a2 Added access log to server and modified mock-fts to use it bwilliams 2026-10-16 08:38:41 +01:00
  • 2490519c2b Fixed a race condition in dial_test related to hub closing in-test bwilliams 2026-10-15 17:57:26 +01:00
  • a279405cae Added the HTTP server and serve command, with proxy, CSRF, TLS and security header config; wsserve is now ws serve, alongside a new ws dial bwilliams 2026-10-15 17:47:40 +01:00
  • f3a91ad915 An empty api_root now fails at start, for an enabled find_a_tender or fts_mock source and for fetch once bwilliams 2026-10-15 16:27:49 +01:00
  • 67215a6aaa Added CODE_CONVENTIONS.md and linters to enforce it, and applied it across the codebase bwilliams 2026-10-15 16:26:42 +01:00
  • 465358609a Naming, layout and comments: descriptive full-word names, one item per line in wrapped calls and literals, and doc comments on exported names bwilliams 2026-10-15 16:12:56 +01:00
  • 043e307663 Logging: structured slog messages throughout, and WithLogger options so callers choose the logger bwilliams 2026-10-15 16:10:52 +01:00
  • 0b5fde9563 Config changes bwilliams 2026-10-15 16:00:48 +01:00
  • 49b824d5a2 Added util.ByteSizeNoLimit: a byte size of -1 means no limit, and any other negative size is rejected bwilliams 2026-10-15 15:49:47 +01:00
  • e19c8c2b69 Imports split into three groups: standard library, third-party, then this project's own packages bwilliams 2026-10-14 17:40:06 +01:00
  • c9f42b62ad Added websocket hub for handling websocket clients, with a wsserve command which runs a plain TCP server for receiving websocket hub clients, with server config, CSRF and rate limit middleware. bwilliams 2026-10-14 15:55:25 +01:00
  • 803a8929e6 printLoadedConf modified to only print explicitly set config values (via env or config file) bwilliams 2026-10-14 15:38:38 +01:00
  • d6688a6754 File/package naming convention conforming better to go standards - as ugly as it is bwilliams 2026-10-13 16:31:47 +01:00
  • be4770cbab Shortened configuration struct names from JobSearchConfig to JSC since they are distinguished by being in the config package anyway bwilliams 2026-10-13 16:16:34 +01:00
  • 5ec4b65b91 Added unit tests for CLI bwilliams 2026-10-13 13:22:22 +01:00
  • 169c6c6b64 config updated to improve setting values, writing changes and test coverage bwilliams 2026-10-13 13:19:01 +01:00
  • 8f0e72821f Updated config init to check the command arguments instead of using the --config flag (which is now hidden from it) bwilliams 2026-10-13 13:13:11 +01:00
  • 045492a148 First pass implementation of an SQLite backing store for fetched opportunities bwilliams 2026-10-13 12:52:17 +01:00
  • 9b0e6dccfe Added source and user marks to opportunities type. Any ignored errors are deferred to //nolint with a comment instead of being silently dropped bwilliams 2026-10-13 12:40:11 +01:00
  • 6e6dec68c0 Fixed lint issues and missing documentation bwilliams 2026-10-13 12:21:32 +01:00
  • 7fd321df97 Added unit tests, documentation and function descriptions across the board. Increased cyclop complexity threshold to 15 which is a bit more sane than 10 and excluded _test.go files from linters. bwilliams 2026-10-09 18:27:51 +01:00
  • 005b335371 Minor fixes: - Fixed function name typo - Fetcher/Run now returns a combination of errors if any workers error out. All other workers are ordered to shutdown if any one does error out - findATender now returns a pointer instead of an instance from New bwilliams 2026-10-09 18:26:10 +01:00
  • 5cb3601e1f Added fetch service and a mock Find a Tender server bwilliams 2026-10-09 18:02:32 +01:00
  • dcb714dc19 Some bug fixes: bwilliams 2026-10-09 17:58:48 +01:00
  • 399eccf2de Find a Tender API client updates bwilliams 2026-10-09 17:56:55 +01:00
  • 69620e5f7d Unit tests added for internal/config bwilliams 2026-10-09 17:07:50 +01:00
  • 09644d0691 Moved config set/unset to internal/config/modify.go as Store and Purge. bwilliams 2026-10-09 17:07:06 +01:00
  • 539e88e73c removed copyright/license header from all files since it was getting tedious. It remains in the cmd main.go and there is still the LICENSE file bwilliams 2026-10-09 12:27:35 +01:00
  • e43b7a8370 Added fetch script for UK Gov FindATender service which is based on OCDS (with issues...) bwilliams 2026-10-09 10:08:11 +01:00
  • ff33ef082a Refactored configuration to make sections less code intensive to add bwilliams 2026-10-08 14:49:41 +01:00
  • 8b0cecb51b Updated build script to produce release archives for git and to be more verbose bwilliams 2026-10-08 14:48:01 +01:00
  • dd26976f76 Moved package log to logging bwilliams 2026-10-08 14:46:44 +01:00
  • da81e6ccd9 Silence usage on commands that apply bwilliams 2026-10-08 14:45:58 +01:00
  • 6436253629 Refactored main.go into cmd/jobsearch/main.go (in case separate commands are introduced later) which has required the options mechanism to change slightly as well as the logging. bwilliams 2026-10-09 09:29:42 +01:00
  • de3ebf68c5 Added an unsafe reflect to detect if a log handler is JSON enabled or not bwilliams 2026-09-29 11:55:45 +01:00
  • a0fad30e99 Config to string, JSON and YAML methods added and updated print methods to use new methods bwilliams 2026-09-29 11:55:11 +01:00
  • e715024cbd Initial project v0.0.0 bwilliams 2026-09-23 14:32:50 +01:00