Commit Graph

779 Commits

Author SHA1 Message Date
Nick Sweeting
5ec6478b12 Require ArchiveBox health in setup probes 2026-08-15 03:50:13 -07:00
Nick Sweeting
9a74934667
Keep wildcard TLS to one certificate 2026-08-13 01:11:05 -07:00
Nick Sweeting
364b139e03
Interpolate legacy snapshot status migration 2026-08-12 22:37:09 -07:00
Nick Sweeting
be1c0b097b
Preserve snapshot completion from 0.8 betas 2026-08-12 22:31:46 -07:00
Nick Sweeting
ba2bc83809
Preserve outputs during filesystem migration 2026-08-12 22:07:34 -07:00
Nick Sweeting
0605068221
Fix Archive Results column sizing 2026-08-09 16:35:09 -04:00
Nick Sweeting
1740dbc218
Clean up verified migrations owned by legacy users 2026-08-09 14:26:48 -04:00
Nick Sweeting
5cdfb78bd2
Preserve oldest filesystem migration edge cases
Some checks failed
CI / Linters (push) Has been cancelled
CI / Install and CLI platform compatibility (push) Has been cancelled
CI / Discovered test matrix (push) Has been cancelled
CI / Documentation and root tests (push) Has been cancelled
CI / CodeQL (push) Has been cancelled
CI / Tested Python artifacts (push) Has been cancelled
CI / Tested Docker images (push) Has been cancelled
Deploy Publicsite to GitHub Pages / deploy (push) Has been cancelled
CI / All required CI lanes (push) Has been cancelled
2026-08-02 05:56:11 -07:00
Nick Sweeting
d8b31273ae
Allow legacy debug config without optional tracker 2026-08-02 05:25:54 -07:00
Nick Sweeting
3980dff46d
Preserve interrupted 0.8.5 filesystem migrations 2026-08-02 01:32:24 -07:00
Nick Sweeting
f67e2dc23c
Normalize legacy ArchiveResult timestamps 2026-08-02 01:22:39 -07:00
Nick Sweeting
2c451ed3e4
Support 0.8.5 filesystem upgrades 2026-08-02 01:12:30 -07:00
Nick Sweeting
9efb80ac39 Keep replay aliases off control-plane hosts 2026-08-01 22:54:40 -07:00
Nick Sweeting
b5fc460c3c
Prevent Archive Results output overlap 2026-08-01 22:19:10 -07:00
Nick Sweeting
e14d802388
Fix Archive Results table wrapping 2026-08-01 21:43:30 -07:00
Nick Sweeting
6e833a84ba
Allow public first-run setup 2026-08-01 19:34:44 -07:00
Nick Sweeting
3fd0460d54
Fix focused release validation failures 2026-08-01 19:28:20 -07:00
Nick Sweeting
7611a57917
Preserve complete legacy collections during upgrade 2026-08-01 14:25:57 -07:00
Nick Sweeting
ba07e45086
Preserve 0.8 metadata during core rebuild 2026-08-01 14:25:57 -07:00
Nick Sweeting
6b08efd799
Preserve legacy ArchiveResult history 2026-08-01 14:25:57 -07:00
Nick Sweeting
06fbed2be2
Make Process metadata migration transactional 2026-08-01 14:25:57 -07:00
Nick Sweeting
bd338e23af
Preserve ArchiveResults during UUID migration 2026-08-01 14:25:56 -07:00
Nick Sweeting
54b1c04750
Preserve legacy plugin outputs during migration 2026-08-01 13:07:32 -07:00
Nick Sweeting
7dfe9465b4
Retry only failed archive results 2026-08-01 11:49:07 -07:00
Nick Sweeting
6c87629b39
Make API pause win over runner leases 2026-07-31 23:50:40 -07:00
Nick Sweeting
cb234a8a64
Keep runtime component labeling side-effect free
Some checks are pending
CI / Linters (push) Waiting to run
CI / Install and CLI platform compatibility (push) Waiting to run
CI / Discovered test matrix (push) Waiting to run
CI / Documentation and root tests (push) Waiting to run
CI / CodeQL (push) Waiting to run
CI / Tested Python artifacts (push) Waiting to run
CI / Tested Docker images (push) Waiting to run
CI / All required CI lanes (push) Blocked by required conditions
Deploy Publicsite to GitHub Pages / deploy (push) Waiting to run
2026-07-29 22:05:40 -07:00
Nick Sweeting
24efe6fa4d
Keep root-owned collections under root 2026-07-29 15:08:58 -07:00
Nick Sweeting
fbad221bc4
Rewrite archived HTML image sources to responses 2026-07-25 22:34:30 -07:00
Nick Sweeting
3835344855
Isolate sharded tests without losing coverage 2026-07-25 19:05:42 -07:00
Nick Sweeting
3d67c6b370
Speed up CI setup without reducing coverage 2026-07-25 18:47:03 -07:00
Nick Sweeting
93b5f6a6db
Allow API subdomain unsafe methods in auto mode 2026-07-25 18:37:32 -07:00
Nick Sweeting
8254f962ba
Fix CI runtime resolution and host policy regressions 2026-07-25 18:35:25 -07:00
Nick Sweeting
28d3392291
Fix screenshot deploy sequencing 2026-07-25 15:26:08 -07:00
Nick Sweeting
0fea07064d
Honor forwarded proto in setup URL suggestions 2026-07-25 15:10:57 -07:00
Nick Sweeting
05350846ab
Sync ArchiveBox UI and setup updates 2026-07-25 14:50:15 -07:00
Claude
f7c182d76c
Merge remote-tracking branch 'origin/dev' into claude/archivebox-postgresql-support-xrlgim
# Conflicts:
#	.github/workflows/test-parallel.yml
#	.github/workflows/test.yml
#	uv.lock
2026-07-24 10:30:55 +00:00
Claude
ee6867e812
Use is_postgres() in snapshot URL query (centralize backend check)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YHSjZM6TstSAMN2PhgfUg
2026-07-24 10:28:04 +00:00
Claude
6a8062090b
Slim DB helpers and address PR review feedback
Helper reduction:
- Move the Django DATABASES/SQLITE_CONNECTION_OPTIONS assembly into
  core/settings.py, dropping get_database_settings() and
  get_sqlite_connection_options() from misc/db.py.
- Inline the single-use migration_table_columns() into its one migration.

Review fixes:
- search: match only scalar JSON *values* on postgres (jsonb_path_query
  over '$.**' scalar leaves), mirroring SQLite json_tree.atom so config
  keys no longer match.
- CharField clamp now also runs in SnapshotQuerySet.bulk_create (bulk paths
  bypass the pre_save signal); truncate_overlong_charfields is dual-use.
- Restore reverse-migration parity on postgres: crawls/machine/api initial
  migrations drop their rebuilt tables on reverse via drop_models_on_postgres.
- docs: give DATABASE_NAME its own section so the anchor resolves correctly.
- CI: only install postgres binaries on the shard that runs the postgres test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YHSjZM6TstSAMN2PhgfUg
2026-07-24 07:57:09 +00:00
Nick Sweeting
eacfae5d6c
Run all ArchiveBox tests through unified CI 2026-07-24 00:50:40 -07:00
Claude
c2191f9e74
Fix lint: settings import placement and benchmark script exec bit
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YHSjZM6TstSAMN2PhgfUg
2026-07-23 17:18:54 +00:00
Claude
7167c5dd8a
Add native PostgreSQL support alongside SQLite
Add DATABASE_ENGINE=postgres (plus DATABASE_HOST/PORT/USER/PASSWORD/NAME)
config and centralize all sqlite-vs-postgres branching in
archivebox.misc.db:

- get_database_settings() builds DATABASES for either backend; the sqlite
  path is unchanged (custom lock-retry backend, same PRAGMAs).
- database_exists()/ensure_database_ready() replace index.sqlite3 file
  checks; init auto-creates the postgres database when missing.
- approximate_row_counts() serves admin index counts from sqlite_stat1 or
  pg_class.reltuples; missing-table detection covers both vendors.
- rebuild_models_from_migration_state() lets historical sqlite-only raw
  SQL migrations resync postgres schema from Django migration state at
  every divergence point (postgres can never hold legacy data, so
  affected tables are empty when these run). All raw-DDL and PRAGMA
  migrations are now vendor-gated with sqlite behavior byte-for-byte
  unchanged.
- A pre_save clamp truncates CharField values to max_length: sqlite
  never enforced varchar(n) but postgres does (e.g. long crawl labels).
- Collation-sensitive URL range scans branch to escaped LIKE on postgres
  (with a text_pattern_ops index) since linguistic collations break
  bytewise range tricks; the crawl-config JSON search wave gets a
  jsonb-text implementation.

Verified on real PostgreSQL 16: fresh init applies the entire migration
graph, schema matches models exactly (column-level parity check +
makemigrations --check), and add/run/list/search/status/remove all work
end-to-end. New test_postgres_backend.py suite boots a real throwaway
postgres cluster (initdb + pg_ctl); CI workflows install postgres server
binaries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YHSjZM6TstSAMN2PhgfUg
2026-07-23 17:08:47 +00:00
Nick Sweeting
6592af0d19
Exercise ArchiveBox through unified runtime lifecycles 2026-07-21 19:26:42 -07:00
Nick Sweeting
6e915c11aa
Restore complete deterministic ArchiveBox CI 2026-07-19 20:08:29 -07:00
Nick Sweeting
ee0e3eb43c
Enforce the sealed search maintenance boundary 2026-07-19 08:54:32 -07:00
Nick Sweeting
cbeeda9210
Keep plugin dependency selection server-side 2026-06-24 13:47:11 -07:00
Nick Sweeting
095c0e5112
fix admin snapshot changelist preview summaries 2026-06-21 21:33:14 -07:00
Nick Sweeting
8b57085827
chore: commit local archivebox changes 2026-06-14 11:44:38 -07:00
Nick Sweeting
6bf3ce989d
release: archivebox 0.9.35rc33 2026-06-14 08:08:16 -07:00
Nick Sweeting
11c9f8c163
fix: improve snapshot preview rendering 2026-06-14 00:16:21 -07:00
Nick Sweeting
18e3580dcd
fix: harden reflected metadata rendering 2026-06-14 00:06:35 -07:00