Commit Graph

9 Commits

Author SHA1 Message Date
Jakub Zych
2efe3514a8 chore: require summercms v0.2.0 2026-10-15 23:32:18 +02:00
Jakub Zych
e52b28621b test(19.3-06): wait for the queued site-cache purge before asserting (WR-01)
- every read of the purge receiver first drains the app's purger through
  cooler.SiteCachePurger.Wait, since cooler now queues purges after commit
2026-10-15 22:39:18 +02:00
Jakub Zych
fa90e836bc chore(19.3-05): require summercms v0.1.27
- framework release with cooler, site-cache purge and the 19.3 transport surface
- go mod tidy adds go-redis, otter and the AWS SDK modules as indirect requires
2026-10-15 20:06:13 +02:00
Jakub Zych
e117bb4fb0 test(19.3-05): purgeSiteCache does nothing without a transaction or purger 2026-10-15 19:56:16 +02:00
Jakub Zych
c60ae6e5d1 feat(19.3-04): purge the host site's page cache after FAQ saves and deletes
- FormAfterCreate/FormAfterUpdate run the locale check, then register a
  purge of kind faq through cooler.PurgeSiteCacheAfterCommit
- new FormAfterDelete purges after the delete commits
- purgeSiteCache helper takes the save transaction from cabana.TxFromContext
  and the purger from cooler.SiteCacheFromApp (site_cache.* keys)
- TestFaqAdminPurgesSiteCache on Postgres
2026-10-15 18:22:45 +02:00
919cf06eca test(17-06): FAQ plugin unit tests
- TestFaqContentDecode, TestFaqModel and TestFaqSerialize (Docker-free):
  content as list, JSON text or row-keyed object, required export
  fields, the model contract, output sanitizing, null description,
  question text and the slug shape
- TestFaqAPI and TestFaqImport (Postgres): active duplicate behind an
  inactive lower id, default locale per is_default, a disabled default,
  malformed slugs, keyed content order, malformed rows aborting before
  any write
2026-10-12 19:42:42 +02:00
1585f06b3c feat(17-04): public FAQ API with output sanitizing, throttle bucket and README
- GET /_faq/api/v1/faqs/{slug}?locale=xx, anonymous, faq-public-api bucket (120/min per client IP)
- locale by enabled code or the default locale; active row, lowest id among duplicates
- description and answers passed through seaglass.Sanitize on output; 404 {"error":"FAQ not found"}
- TestFaqAPISmoke; README with API, CORS paths, import workflow and Winter adaptations
- go mod tidy records the test dependencies
2026-10-12 17:51:22 +02:00
7413c6905d feat(17-04): faq:import-winter and the read-only Winter export SQL
- JSON lines import keeping ids, locale_id looked up by locale code (an unknown code aborts before any write)
- one transaction, setval past the copied ids, --force replaces, --dry-run reports, an empty file copies nothing
- scripts/winter-export.sql: SELECT JSON_OBJECT with the translate locale code
- TestFaqImportSmoke
2026-10-12 17:35:30 +02:00
1c5491232a feat(17-04): FAQ plugin tracer, admin FAQ with sanitized question repeater
- golem15.faq plugin (Requires golem15.translate), table golem15_faq_faqs with the PHP columns
- FAQ model with jsonable content and the translate Locale relation
- admin controller golem15.faq.faqs: name, slug, locale, active switch, richeditor description, question repeater
- navigation FAQ (order 500), permission golem15.faq.faqs, en and pl phrasebooks
- TestFaqAdminSmoke: answers stored sanitized with a notice under content.1.answer
2026-10-12 17:24:52 +02:00