Instance configuration #2

Closed
opened 2026-04-23 01:32:07 +02:00 by myrmidex · 1 comment
Owner
  • Define instance config schema (type, url, endpoints, interval, enabled)
  • Publish default config file with empty instance list
  • Add config validation command
  • Migration: fedisearch_instances (id, type, url, config, enabled)
  • Instance model
- [x] Define instance config schema (type, url, endpoints, interval, enabled) - [x] Publish default config file with empty instance list - [x] Add config validation command - [x] Migration: fedisearch_instances (id, type, url, config, enabled) - [x] Instance model
myrmidex added this to the v0.1 milestone 2026-04-23 01:32:07 +02:00
myrmidex self-assigned this 2026-04-23 20:15:29 +02:00
Author
Owner

Shipped across 5 commits on release/0.1.0. Field-name drift vs ticket wording (all intentional):

  • fedisearch_instancesfedi_discover_instances — project was renamed.
  • Schema "endpoints" → not a separate field; covered by extras (JSON column) for per-type variant data.
  • Schema "config" column → split into typed columns (url, interval_seconds, enabled) + extras JSON for the flexible bits. Better schema, same intent.

Also added: ValueObject for config (InstanceConfig), InstanceType backed enum, package factory with state helpers (->type(), ->enabled(), ->disabled()), and fedi-discover:validate command with --enabled-only flag.

Tests: 28 green (unit + feature + package). Pint + PHPStan clean.

Shipped across 5 commits on `release/0.1.0`. Field-name drift vs ticket wording (all intentional): - `fedisearch_instances` → `fedi_discover_instances` — project was renamed. - Schema "endpoints" → not a separate field; covered by `extras` (JSON column) for per-type variant data. - Schema "config" column → split into typed columns (`url`, `interval_seconds`, `enabled`) + `extras` JSON for the flexible bits. Better schema, same intent. Also added: `ValueObject` for config (`InstanceConfig`), `InstanceType` backed enum, package factory with state helpers (`->type()`, `->enabled()`, `->disabled()`), and `fedi-discover:validate` command with `--enabled-only` flag. Tests: 28 green (unit + feature + package). Pint + PHPStan clean.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lvl0/trove#2
No description provided.