Forms: a module so a public visitor can submit a form
- Dominant language
- C#
- Stars
- 6
- Forks
- 7
- Avg merge
- 4h 21m
- Merged PRs (30d)
- 307
Description
There is no way for a visitor to submit anything. `Features/Requests` is outbound HTTP through
connectors, and the only anonymous writes in the API are registration and the PWA report endpoint.
A business site without a contact form is a brochure, so the claim that these four products ship
the boring 80 per cent of a client site is not honest until this exists.
`BarakoCMS.Forms`:
- `POST /api/public/forms/{slug}` validates the body against a content type marked as accepting
public submissions, and stores it as an ordinary entry of that type.
- Document sensitivity is Sensitive, so the delivery API can never serve submissions back out.
This is the part to get right first.
- Rate limited per client, the way the PWA report endpoint already is.
- A honeypot field, and an optional Turnstile or similar check.
Notification is not this module's job. A workflow on Created for that type with an Email action
already does it, through the Email modules that exist.
A contact form and an appointment request are then two definitions, not two features.
Contributor guide
Research direction
Start with the existing PWA report endpoint to understand its rate limiting, then trace the delivery API's Sensitive handling and the content-type entry path. Check how the Email modules and Created workflows represent existing behavior. Done means a public slug-based submission endpoint validates eligible types, stores submissions as Sensitive entries, applies abuse protections, and keeps them out of delivery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100