Commit Graph

19 Commits

Author SHA1 Message Date
Pascal Bleser
5bae16be63 groupware: API documentation updates 2026-04-30 10:51:45 +02:00
Pascal Bleser
0cbf4b7287 groupware: refactor responses to a jmap.Response object
* in the JMAP API as well as in several places in the Groupware
   framework, use a single jmap.Response[T] object to return the
   payload, the language, the session state and the etag/state instead
   of individual multi-valued return values
2026-04-30 10:51:45 +02:00
Pascal Bleser
91e2705bb1 groupware: omit "position" when "anchor" is specified in queries
* the "position" attribute is always set to 0 when using an anchor for
   pagination, but it does not accurately reflect the position and thus
   we decided to remove the attribute from the resulting object for
   clarity

 * omit "canCalculateChanges" attribute when its value is "true", which
   is going to be the case in 100% of calls against Stalwart
2026-04-30 10:51:45 +02:00
Pascal Bleser
652b87d350 groupware: add documentation for SearchResultsTemplate + update pnpm 2026-04-30 10:51:45 +02:00
Pascal Bleser
8c41e41c9e groupware: documentation changes after API generator updates for the use of template functions 2026-04-30 10:51:45 +02:00
Pascal Bleser
7d8e3ef1e8 groupware: add addressbook and calendar creation APIs
* add Groupware APIs for creating and deleting addressbooks

 * add Groupware APIs for creating and deleting calendars

 * add JMAP APIs for creating and deleting addressbooks, calendars

 * add JMAP APIs to retrieve Principals

 * fix API tagging

 * move addressbook JMAP APIs into its own file

 * move addressbook Groupware APIs into its own file
2026-04-30 10:51:45 +02:00
Pascal Bleser
995ab9f6cd groupware: bump @redocly/cli 2.24.0 -> 2.25.2 2026-04-30 10:51:45 +02:00
Pascal Bleser
aee6fb3a67 groupware: upgrade redocly/cli 2.20.0 -> 2.24.0 2026-04-30 10:51:45 +02:00
Pascal Bleser
3eb400a204 groupware: upgrade redocly/cli 2.15.1 -> 2.20.2 2026-04-30 10:51:44 +02:00
Pascal Bleser
f91b944aca groupware: bump redocly/cli from 2.14.6 to 2.15.1 2026-04-30 10:51:44 +02:00
Pascal Bleser
8444f9e088 update redocly 2.14.5 -> 2.14.6 2026-04-30 10:51:44 +02:00
Pascal Bleser
25804d22bf groupware: update pnpm 10.28.0 -> 10.28.1 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
Pascal Bleser
59a4432d91 docs(groupware): upgrade @redocly/cli 2.3.1 -> 2.4.0 2026-04-30 10:51:42 +02:00
Pascal Bleser
033343a988 groupware: update @redocly/cli from 2.3.0 to 2.3.1 2026-04-30 10:51:42 +02:00
Pascal Bleser
f4856b7259 groupware: update @redocly/cli: 2.2.2 -> 2.3.0 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
b24ed478f0 start websocket implementation, add endpoint for email summaries
* feat(groupware): start implementing JMAP websocket support for push
   notifications (unfinished)

 * groupware: add GetLatestEmailsSummaryForAllAccounts

 * add new vendored dependency: github.com/gorilla/websocket

 * jmap: add QueryEmailSummaries

 * openapi: start adding examples

 * openapi: add new tooling for api-examples.yaml injection

 * apidoc-process.ts: make it more typescript-y

 * bump @redocly/cli from 2.0.8 to latest 2.2.0
2026-04-30 10:51:41 +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