Commit Graph

12 Commits

Author SHA1 Message Date
Pascal Bleser
549fc4642a groupware: fix typos and minor issues
- fix a bunch of minor issues and typos that were found using GoLand
   and gosec

 - add a gosec Makefile target for Groupware related files, in
   services/groupware/Makefile

 - enable checking JMAP session capabilities for events and contacts,
   and only enable skipping that check for tasks until those are
   implemented in Stalwart as well

 - fix a CWE-190 (integer overflow or wraparound) found by gosec

 - consistently use struct references for methods of Groupware and
   Request, instead of mixing up references and copies

 - always log errors when unable to register a Prometheus metric
2026-04-30 10:51:44 +02:00
Pascal Bleser
8ba07def4c groupware: add jscontact examples, and move them to jmap/model_examples.go to avoid dependency recursion 2026-04-30 10:51:44 +02:00
Pascal Bleser
8a3a6160f9 groupware: more API examples 2026-04-30 10:51:44 +02:00
Pascal Bleser
9f686657a3 groupware: change Makefile to use groupware-apidocs instead of go-swagger 2026-04-30 10:51:44 +02:00
Pascal Bleser
504e107e11 API documentation changes for groupware-apidocs
* add example generator infrastructure, with some examples for pkg/jmap
   and pkg/groupware, with more needing to be done

 * alter the apidoc Makefile to stop using go-swagger but, instead, use
   the openapi.yml file that must be dropped into that directory using
   groupware-apidocs (will improve the integration there later)

 * add Makefile target to generate examples

 * bump redocly from 2.4.0 to 2.14.5

 * introduce Request.PathParam() and .PathParamDoc() to improve API
   documentation, as well as future-proofing

 * improve X-Request-ID and Trace-Id header handling in the middleware
   by logging it safely when an error occurs in the middleware
2026-04-30 10:51:44 +02:00
Viktor Scharf
7269afb030 fixed connection reset issue. adapted make file to generate swagger docs on mac 2026-04-30 10:51:42 +02:00
Pascal Bleser
9777c619b7 groupware: add mock endpoints for addressbooks and contacts 2026-04-30 10:51:42 +02:00
Pascal Bleser
4d9bc2acfc docs(groupware): OpenAPI improvements
* refactor some pkg/jmap and groupware methods to make more sense from
   an API point-of-view

 * add path parameter documentation, but automate it by injecting their
   definition into the OpenAPI YAML tree that is extracted from the
   source code using go-swagger as it is too cumbersome, repetitive and
   error-prine to document them in the source code; wrote a TypeScript
   file apidoc-process.ts to do so

 * add generating an offline HTML file for the OpenAPI documentation
   using redocly, and injecting a favicon into the resulting HTML; wrote
   a TypeScript file apidoc-postprocess-html.ts to do so
2026-04-30 10:51:41 +02:00
Pascal Bleser
7af4a01de6 groupware: swagger API documentation improvements
* add more documentation for properties

 * fixes after a bit of trial-and-error with go-swagger

 * fix email filter marshalling when there are no search criteria

 * introduce an apidoc.yml that contains Swagger data and is merged when
   generating the swagger.yml from sources
2026-04-30 10:51:41 +02:00
Pascal Bleser
61aed94c50 refactored the Session object, refactored the services/groupware directory, and started Swagger documentation implementation 2026-04-30 10:51:40 +02:00
Pascal Bleser
de6708faf8 add an auth-api service to make an exemplary implementation of an external authentication API for third party services such as Stalwart 2026-04-30 10:51:40 +02:00
Pascal Bleser
a90f792caa WIP: initial implementation of the groupware service 2026-04-30 10:51:40 +02:00