Commit Graph

19 Commits

Author SHA1 Message Date
Pascal Bleser
0e6fb14c0a groupware: API documentation updates 2026-06-16 16:51:37 +02:00
Pascal Bleser
92aa5fca67 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-06-16 16:51:37 +02:00
Pascal Bleser
e772f46c97 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-06-16 16:51:37 +02:00
Pascal Bleser
ae0ff8e524 groupware: add documentation for SearchResultsTemplate + update pnpm 2026-06-16 16:51:37 +02:00
Pascal Bleser
c710336b22 groupware: documentation changes after API generator updates for the use of template functions 2026-06-16 16:51:37 +02:00
Pascal Bleser
89fee977c8 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-06-16 16:51:37 +02:00
Pascal Bleser
9e391c103d groupware: bump @redocly/cli 2.24.0 -> 2.25.2 2026-06-16 16:51:37 +02:00
Pascal Bleser
b3819eff86 groupware: upgrade redocly/cli 2.20.0 -> 2.24.0 2026-06-16 16:51:37 +02:00
Pascal Bleser
50d6384e4d groupware: upgrade redocly/cli 2.15.1 -> 2.20.2 2026-06-16 16:51:36 +02:00
Pascal Bleser
c404a58557 groupware: bump redocly/cli from 2.14.6 to 2.15.1 2026-06-16 16:50:52 +02:00
Pascal Bleser
9ea44cb5ce update redocly 2.14.5 -> 2.14.6 2026-06-16 16:50:52 +02:00
Pascal Bleser
9c57b8dcde groupware: update pnpm 10.28.0 -> 10.28.1 2026-06-16 16:50:52 +02:00
Pascal Bleser
ef7b1d4a72 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-06-16 16:50:11 +02:00
Pascal Bleser
a4949fc021 docs(groupware): upgrade @redocly/cli 2.3.1 -> 2.4.0 2026-06-16 16:49:44 +02:00
Pascal Bleser
14ab0b861b groupware: update @redocly/cli from 2.3.0 to 2.3.1 2026-06-16 16:49:43 +02:00
Pascal Bleser
f4aa170af6 groupware: update @redocly/cli: 2.2.2 -> 2.3.0 2026-06-16 16:49:43 +02:00
Pascal Bleser
e6cf66aac8 groupware: add mock endpoints for addressbooks and contacts 2026-06-16 16:49:43 +02:00
Pascal Bleser
335b46e502 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-06-16 16:49:43 +02:00
Pascal Bleser
e377dfc2b9 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-06-16 16:49:43 +02:00