Philipinho
2d74455c2b
refactor(integrations): consolidate integrations schema into baseline migration
2026-05-23 13:11:28 +01:00
Philipinho
6a870adec9
fix(integrations): partial unique index so user-link doesn't clobber workspace row
2026-05-23 13:06:47 +01:00
Philipinho
9a225c07c3
feat(page): add canPageBeUnfurled predicate for Slack link previews
2026-05-23 03:05:05 +01:00
Philipinho
d68cff0ee9
chore(ee): bump submodule for handler interface and dispatchers
2026-05-23 02:30:41 +01:00
Philipinho
88888e1dc7
fix(integrations): scope Slack-kind backfill, fix index where-clause types
2026-05-23 01:35:08 +01:00
Philipinho
cc17faf835
feat(integrations): add kind discriminator and nullable token to connections
2026-05-23 01:22:32 +01:00
Philipinho
af9e777009
merge main
2026-05-22 13:56:51 +01:00
Philip Okugbe
6cf8101ab3
feat(ee): templates ( #2215 )
...
* feat(ee): templates
* fix tree
* fix
2026-05-19 02:41:52 +01:00
Peter Tripp and Philipinho
932c1ad5b7
Better trash ( #2190 )
...
* Better trash
I recently lost a bunch of time editing and searching for pages that were actually in the Trash. Docmost intentionally tries to not link to Trashed pages, but the url of that Trashed page and any inbound links still work. This makes it clearer when a page you are interacting with is in the Trash.
- /trash
- Refactored banner into `trash-banner.tsx`
- Refactored "Restore" modal into `use-restore-page-modal.tsx`
- Page (when isDeleted)
- Add: `trash-banner.tsx`
- Add breadcrumbs: `Parent / Child / Page (Deleted)`
- Change: Deleted Pages are read-only
- Replace "Move to Trash" with "Restore" in page menu (invokes `use-restore-page-modal`)
I tried very hard to keep this simple and re-use existing translation strings wherever possible.
* cleanup
---------
Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com >
2026-05-14 14:41:10 +01:00
Philip Okugbe
f758091b2a
perf(permissions): cache space role and page edit lookups ( #2208 )
2026-05-14 13:11:28 +01:00
Philip Okugbe
a689cca7a0
feat: page labels/tags ( #2188 )
...
* feat: labels (WIP)
* full implementation
2026-05-10 18:14:15 +01:00
Philip Okugbe
537e45bc11
feat: page details section and backlinks ( #2186 )
...
* feat: page details section and backlinks
2026-05-09 17:03:08 +01:00
Philip Okugbe
de60aa7e61
feat: synced blocks (transclusion) ( #2163 )
...
* feat: synced blocks (transclusion)
* fix:remove name
* make placeholders smaller
* feat: enforce strict transclusion schema
* fix: scope synced blocks to workspace, gate unsync on edit permission
* fix collab module error
2026-05-08 13:23:16 +01:00
Philip Okugbe
641ce142df
feat(ee): SCIM ( #1347 )
...
* SCIM - init (EE)
* accept db transaction
* sync
* Content parser support for scim+json
* patch scimmy
* sync
* return early if userIds is empty
* sync
* SCIM db table
* fixes
* scim tokens
* backfill
* feat(audit): add scim token events
* rename scim migration
* fix
* fix translation
* cleanup
2026-05-01 14:53:30 +01:00
Philip Okugbe
a6a7e4370a
feat(ee): PDF export api ( #2112 )
...
* feat(ee): server side PDF export
* feat: pdf export queue
* sync
* sync
2026-04-14 16:26:54 +01:00
Philip Okugbe
cc00e77dfb
fix: space overview favorites ( #2110 )
2026-04-14 02:58:24 +01:00
Philip Okugbe
4056bd0104
feat: enhancements ( #2107 )
...
* refactor
* fix
* update packages
2026-04-13 23:34:40 +01:00
Philip Okugbe
bd68e47e03
feat(ee): page verification workflow ( #2102 )
...
* feat: page verification workflow
* feat: refactor page-verification
* sync
* fix type
* fix
* fix
* notification icon
* use full word
* accept .license file
* - update templates
- update migration and notification
* fix copy
* update audit labels
* sync
* add space name
2026-04-13 20:20:34 +01:00
Philip Okugbe
d42091ccb1
feat: favorites ( #2103 )
...
* feat: favorites and templates(ee)
* rename migrations
* fix sidebar
* cleanup tabs
* fix
* turn off templates
* cleanup
* uuid validation
2026-04-12 22:06:25 +01:00
Philip Okugbe
57efb91bd3
feat(ee): ai chat ( #2098 )
...
* feat: ai chat
* feat: ai chat
* sync
* cleanup
* view space button
2026-04-10 19:23:47 +01:00
Philip Okugbe
da9b43681e
feat: watch space ( #2096 )
2026-04-09 00:37:51 +01:00
Philip Okugbe
879aa2c3d8
feat: page update notifications ( #2074 )
...
* feat: watchers notification and email preferences
* fix: email copy
* digests
* clean up
* fix
* clean up
* move backlinks queue-up to history processor
* fix
* fix keys
* feat: group notifications
* filter
* adjust email digest window
2026-03-31 16:03:59 +01:00
Philip Okugbe
cbd0dd4a0b
feat: indexes ( #2071 )
2026-03-29 20:29:12 +01:00
Philip Okugbe
3829b6cbef
feat(ee): viewer comments ( #2060 )
2026-03-28 19:32:52 +00:00
Philip Okugbe
803f1f0b81
feat: user session management ( #2056 )
...
* user session management
* WIP
* cleanup
* license
* cleanup
* don't cache index
* rename current device property
* fix
2026-03-26 20:00:04 +00:00
Philipinho
90c190df78
fix: space members view enhancement
2026-03-02 21:33:15 +00:00
Philipinho
17ec2f4ac5
lists sorting
2026-03-02 21:07:47 +00:00
Philipinho
616d9297eb
sync
2026-03-02 04:08:59 +00:00
Philip Okugbe
2309d1434b
feat: support cross-space page mentions ( #1979 )
2026-03-01 17:14:10 +00:00
Philip Okugbe
69d7532c6c
feat(ee): audit logs ( #1977 )
...
feat: clickhouse driver
* sync
* updates
2026-03-01 01:29:03 +00:00
Philip Okugbe
59e945562d
feat(ee): page-level access/permissions ( #1971 )
...
* Add page_hierarchy table
* feat(ee): page-level permissions
* pagination
* rename migration
fixes
* fix
* tabs
* fix theme
* cleanup
* sync
* page permissions notification
* other fixes
* sharing disbled
* fix column nodes
* toggle error handling
2026-02-26 19:49:10 +00:00
Philipinho
aeb30ad096
feat: integrations
2026-02-22 20:14:33 +00:00
Philipinho
873c963043
fix db types duplication
2026-02-19 22:34:07 +00:00
Philip Okugbe
05b3c65b0f
feat: notifications ( #1947 )
...
* feat: notifications
* feat: watchers
* improvements
* handle page move for watchers
* make watchers non-blocking
* more
2026-02-14 20:00:38 -08:00
Philipinho
ab7999a946
v0.25.3
2026-02-09 18:27:55 -08:00
Philip Okugbe
0f02261ee6
feat: page version history improvements ( #1925 )
...
* Refactor: use queue for page history
* feat: save multiple version contributors
* display contributor avatars in history list
* fix interval
2026-02-09 18:25:35 -08:00
Philip Okugbe
1ad53c2581
feat(ee): public sharing controls ( #1910 )
...
* feat(ee): public sharing controls
* lint
2026-02-06 10:35:36 -08:00
Philip Okugbe and Jason Norwood-Young
5506eb194b
feat: page history diff ( #1891 )
...
* Show actual history changes
* V2 - WIP
* feat: page history diff
* fix: exclude content from history listing
---------
Co-authored-by: Jason Norwood-Young <jason@10layer.com >
2026-02-03 11:55:20 -08:00
Philip Okugbe
78b1c1a453
feat: switch to cursor pagination ( #1884 )
...
* add cursor pagination function
* support custom order modifier
* refactor returned object
* feat(db): migrate paginated endpoints to cursor-based pagination
* sync
* support hasPrevPage boolean
* feat(client): migrate pagination from offset to cursor-based
* support beforeCursor/prevCursor
* wrap search results in items array for API consistency
2026-01-30 19:28:54 +00:00
Philipinho
3523600f40
add timestamps
2026-01-27 16:49:22 +00:00
Philip Okugbe
aa143ad79c
refactor(db): migrate from node-postgres to postgres.js ( #1846 )
...
* refactor(db): migrate from node-postgres to postgres.js
* ignore schema param
2026-01-21 18:12:16 +00:00
Philip Okugbe
47097969a0
fix: use subquery ( #1833 )
...
- enhance file tasks list endpoint
2026-01-13 15:58:26 +00:00
Philip Okugbe
9fb16bc842
feat(EE): AI vector search ( #1691 )
...
* WIP
* AI module - init
* WIP
* sync
* WIP
* refactor naming
* new columns
* sync
* sync
* fix search bug
* stream response
* WIP
* feat embeddings sync
* refine
* Add workspaceId to page events
* refine
* WIP
* add translation string
* sync
* reset ai answer on query change
* hide AI search in cloud
* capture streaming error
* sync
2025-12-01 11:50:25 +00:00
Philip Okugbe
3164b6981c
feat: api keys management (EE) ( #1665 )
...
* feat: api keys (EE)
* improvements
* fix table
* fix route
* remove token suffix
* api settings
* Fix
* fix
* fix
* fix
2025-10-07 21:05:13 +01:00
Philip Okugbe
bf8cf6254f
feat: Typesense search driver (EE) ( #1664 )
...
* feat: typesense driver (EE) - WIP
* feat: typesense driver (EE) - WIP
* feat: typesense
* sync
* fix
2025-10-07 17:34:32 +01:00
Philip Okugbe
f12866cf42
feat(EE): full-text search in attachments ( #1502 )
...
* feat(EE): fulltext search in attachments
* feat: global search
- search filters
- attachments search ui
- and more
* fix import
* fix import
* rename migration
* add GIN index
* fix table name
* sanitize
2025-09-02 05:27:01 +01:00
Philip Okugbe
dcbb65d799
feat(EE): LDAP integration ( #1515 )
...
* LDAP - WIP
* WIP
* add hasGeneratedPassword
* fix jotai atom
* - don't require password confirmation for MFA is user has auto generated password (LDAP)
- cleanups
* fix
* reorder
* update migration
* update default
* fix type error
2025-09-02 04:59:01 +01:00
Philip Okugbe
74cd890bdd
feat(EE): implement SSO group sync for SAML and OIDC ( #1452 )
...
* feat: implement SSO group synchronization for SAML and OIDC
- Add group_sync column to auth_providers table
- Extract groups from SAML attributes (memberOf, groups, roles)
- Extract groups from OIDC claims (groups, roles)
- Implement case-insensitive group matching with auto-creation
- Sync user groups on each SSO login
- Ensure only one provider can have group sync enabled at a time
- Add group sync toggle to SAML and OIDC configuration forms
* rename column
2025-08-31 20:33:37 +01:00
Philipinho
509622af54
ignore type error
2025-08-31 12:20:40 -07:00
Philip Okugbe
aa58e272d6
fix: exclude deleted pages ( #1494 )
2025-08-31 09:11:33 +01:00