57 Commits
Author SHA1 Message Date
markkaylorandBen Irvin d14e758ed5 fix(homepage): homepage count-documents slow on large D&P tables (#26370)
* fix(homepage): homepage count-documents slow on large D&P tables

* chore: add api test

* test(homepage): add i18n count-documents document_id semantics tests

Assert per-document_id buckets for never-published multi-locale drafts,
partial locale publish states, and mutually exclusive published vs modified.

---------

Co-authored-by: Ben Irvin <ben@innerdvations.com>
2026-05-27 10:25:34 +02:00
Ben Irvin bdb24ffb0d fix(database): append primary key to ORDER BY for paginated selects (#26032) 2026-05-11 15:37:50 +02:00
Jamie Howard 4ec512cb11 fix: keep draft link on x-to-one relations non-dp to dp (#26179) 2026-05-06 09:23:21 +00:00
Ziyi fa6299100d feat(content-manager): add Zod 4 foundation utilities (#25574) 2026-04-30 14:55:04 +02:00
Nico André 52b8fd9e3d feat(admin): api token supports admin permissions and admin user ownership (#25657) 2026-04-29 17:57:36 +02:00
Jamie Howard 62a6230772 test: relations available status (#26051) 2026-04-24 10:39:17 +02:00
Ziyi ab7d9c38ec fix(document-service): preserve self-referential relations during publish and discard (#25890)
* fix(document-service): preserve self-referential relations during publish/discard

* test(document-service): convert self-referential API test to TypeScript

* fix(document-service): use JoinTable type and tighten Record types in self-referential-relations

* test(document-service): remove weak load() happy-path unit test

* fix(document-service): skip mappedBy attrs, deduplicate and idempotent-insert self-refs

* test(document-service): fix missing dialect and trx mocks in self-referential-relations tests

* fix(tests): use count assertions for CM API self-referential relation tests
2026-04-23 13:32:04 +02:00
db2ec304ff fix(core): add firstPublishedAt field to draft (#25947)
* fix(core): add firstPublishedAt field to draft

* test: add unit test firstPublishedAt

---------

Co-authored-by: Ziyi <daydreamnation@live.com>
Co-authored-by: Alex Birkner <github@tyrola.dev>
2026-04-13 11:13:46 +01:00
Ben Irvin cc6b0c661b fix: use max batch sizes per dialect (#25390) 2026-03-30 09:39:46 +02:00
Ziyi 08c3b0f003 fix: Content types with attributes named filters, sort, fields, or populate no longer cause 400 validation errors on populate queries and countDraftRelations (#21338) (#25762)
* fix(utils): make convertNestedPopulate schema-aware to prevent keyword collision
2026-03-18 15:48:54 +01:00
Jamie Howardandmarkkaylor a6fd594526 Chore/cm combined performance fixes (#25678)
* fix(content-manager): reduce over-populated localizations and metadata (#25557)

* Chore: Content manager performance optimizations (#25600)

* chore(content-manager): wip reduce overhead in metadata queries, populate building, and list view

* fix(content-manager): update document metadata query to select specific fields

* chore(content-manager): document metadata consolidate field selection

* chore(content-manager): streamline locale, enhance document metadata structure

* chore(content-manager): document unpublishing, improve publish status logic

---------

Co-authored-by: markkaylor <mark.kaylor@strapi.io>
2026-03-17 16:28:37 +00:00
Varun ChawlaandZiyi Yuan 45ea4b1c9b fix(content-manager): skip non-draftAndPublish relations in countDraftRelations (#25453)
* fix(content-manager): skip non-draftAndPublish relations in countDraftRelations

* fix(content-manager): add safety guard for undefined targetModel

* fix(content-manager): add hasDraftAndPublish guard to sumDraftCounts and getDeepPopulateDraftCount

---------

Co-authored-by: Ziyi Yuan <daydreamnation@live.com>
2026-03-16 11:35:24 +01:00
Ben Irvin 79a590a581 security(feat): add strictParam, addQueryParams, addBodyParams (#25528) 2026-02-24 13:51:33 +01:00
Araksya Gevorgyan e7ae51b01f feat(core): adding clear button to boolean toggle (#24836)
feat(core): adding clear button to boolean toggle
2025-12-02 17:33:05 +01:00
mathildeleg 62638801ce fix: include locales to get last modified entries in widgets (#24647)
* fix: include locales to get last modified entries in widgets

* chore: add tests
2025-11-12 18:20:59 +01:00
Adrien L 9c630ba433 fix: prefill non translatable fields when creating new document locale (#24659) 2025-10-29 15:50:50 +01:00
Adrien L a8a53e3e7c fix: wrong count of non draftAndPublish entries (#24211) 2025-08-26 09:45:23 +02:00
Adrien L 6d264f56ba feat: key statistics homepage widget (#23938) 2025-07-31 09:36:25 +02:00
Aurélien MANCA 3561ab6db9 feat(uid): add regex attribute (#23141) 2025-06-10 16:34:28 +02:00
Rémi de Juvigny ac2eac47cb chore: convert relations api tests to ts (#23553)
* chore: convert relations api tests to ts

* test: delete skipped tests
2025-05-20 06:11:21 -04:00
markkaylor 167a9bf54f chore(homepage): move widget controllers, services, and routes from admin to content-manager (#23407) 2025-04-24 11:01:12 +02:00
Alexandre Bodin 92055a7fb1 chore: use rollup
chore: fetch template only if name matches name convention

chore: linting

chore: fix tests

chore: fix npm scripts

test: try to fix test
2025-01-23 16:28:23 +01:00
markkaylor f7525dade9 chore(tests): enable and update relations ordering test (#22574) 2025-01-09 12:44:46 +01:00
markkaylor dad3c50630 fix(history): handle nested component images (#22278) 2025-01-08 15:57:28 +01:00
Dhruv MaradiyaandRémi de Juvigny 7d767aba20 fix: handle clearing of number field to send null instead of undefined (#22537)
* fix: handle clearing of number field to send null instead of undefined

set number field to null when cleared; undefined prevented clearing.

* test: add test for clearing integer field to set it to null

---------

Co-authored-by: Rémi de Juvigny <8087692+remidej@users.noreply.github.com>
2025-01-07 04:39:51 -05:00
Simone f09127d8df fix: renable the basic relations test (#22464) 2024-12-18 14:01:18 +01:00
Marc RoigandJamie Howard 0d4051ce87 fix: multiple requests locale (#22273)
* fix: multiple requests locale

* fix: actions request

* fix: properly load locales

* fix: add status to localizations

* fix: remove unused types

* fix: front tests

* fix: add validation fields into localizations

* fix: validatable attributes

* fix: select nested fields when populating localizations

* fix: uncomment localizations populate

* fix: document-metadata

* fix: empty populate

* fix: revert to original proposal

* fix: do not select document ids on components (#22330)

* fix: do not select document ids on components

* chore: unit test

* fix: metadata test

* fix: populate

* fix: default fields

* fix: show current locale when bulk publishing

* fix: create locale

* Update packages/core/content-manager/server/src/services/document-metadata.ts

Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>

---------

Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
2024-12-16 16:12:40 +01:00
Rémi de Juvigny 59cb734ff4 chore: fix tests 2024-12-04 10:02:35 +01:00
f3ad685d4b feat: reordering for polymorphic relations in Content API (#21928)
Co-authored-by: Marc Roig <Marc-Roig@users.noreply.github.com>
Co-authored-by: Marc <marc.roig.campos@strapi.io>
2024-11-08 09:07:22 +01:00
Jean-Sébastien Herbaux 7f39880265 Make locale/localizations private for non-localized cts (#21495) 2024-10-14 14:07:09 +02:00
Marc RoigandRémi de Juvigny 002fc78b3c feat: preview endpoint (#21574)
* feat: base files for static preview

* feat: preview config

* Update packages/core/content-manager/server/src/preview/routes/index.ts

Co-authored-by: Rémi de Juvigny <8087692+remidej@users.noreply.github.com>

* chore: empty handler

* chore: comment controllers type

* fix: remove is enabled check from load

* feat: test preview config

* chore: refactor type

* feat: preview endpoint

* feat: preview test

* fix: tests

* fix: api test

* chore: comment

---------

Co-authored-by: Rémi de Juvigny <8087692+remidej@users.noreply.github.com>
2024-10-08 14:23:47 +02:00
Rémi de JuvignyandMarc Roig dc3f54929b fix: history trying to restore components that were deleted (#21559)
* fix: reenable history api tests

* fix: history trying to restore components that were deleted

* Update tests/api/core/content-manager/content-manager/history/history.test.api.ts

Co-authored-by: Marc Roig <marc.roig.campos@strapi.io>

* chore: refactor to deselect component ids at version creation

* Revert "fix: reenable history api tests"

This reverts commit a35f61fbc0.

* fix: type error

---------

Co-authored-by: Marc Roig <marc.roig.campos@strapi.io>
2024-10-07 05:59:35 -04:00
Ben Irvin 64bd4f3d1e test(api): enable relations tests (#21498) 2024-09-27 15:50:39 +02:00
Alexandre Bodin 86fea32ae4 fix: locale might be null 2024-09-24 16:23:20 +02:00
Fernando Chávez 45c8d25668 fix(content-manager): error when content type has no i18n enabled (#21026)
* fix(content-manager): error when content type has no i18n enabled

* fix(content-manager): history check if CT has D&P and i18n

* fix api tests
2024-08-23 13:31:42 +02:00
Marc Roig e281ba8e37 fix (content-manager): load relation main fields on all pages (#20946) 2024-08-07 14:34:15 +02:00
Jean-Sébastien Herbaux 3ad6bddd75 RBAC Action Aliases - v5 (#20878) 2024-08-06 15:16:25 +02:00
Marc Roig 2403a57adf feat: history version on bulk publish locales (#20847)
* feat: history version on bulk publish locales

* fix: await create version
2024-07-23 09:40:46 +02:00
Marc Roig 8ad1ccbb99 chore: run relation permissions test (#20674) 2024-07-03 15:34:49 +02:00
Alexandre Bodin 3aee925501 fix: several media lib ui issues
fix: using open prop does not clear any state and create a lot of bugs

fix: crop
2024-06-20 17:27:42 +02:00
Jean-Sébastien Herbaux 5285f8db42 Fix Duplicate Rows on Deep Sorting (#20543) 2024-06-20 14:46:31 +02:00
Rémi de Juvigny 826f263c58 fix: add clone actions to history (#20387)
* fix: clone action not appearing in history

* chore: add api tests
2024-05-29 09:09:54 -04:00
8c5105d949 Publish multiple locales (#20258)
* fix: date comparison

* feat(core): document service publish multiple locales (#20046)

* feat(core): document service (un)publish multiple locales

* fix(core): cleanup locale param types

* feat(content-manager): wip - multiple locale support

* Count draft relations across locales (#20116)

* feat(content-manager): publish multiple locales from CM route

* feat(core): multiple locales in document service discard draft

* feat(content-manager): use bulkpublish for locale publish

* feat(content-manager): use query from bulkpublish locales

* feat(content-manager): publishMany

* feat(content-manager): api test for bulk locale + document publish

* chore(content-manager): fix for build

* fix(core): avoid * in locale data

* chore(content-manager): pr amends and validation improvement

* feat(content-manager): use transaction in document manager publish many

* feat(core): throw when a non string locale is provided and not supported

* fix(core): doc service find many

* chore: clean up

* feat(content-manager): Select fields that require validation in availablelocales (#20156)

* feat(content-manager): wip - select more fields in availablelocales

* feat(content-manager): wip available locales using entity traversal

* feat(content-manager): wip test available locales returns fields with validation

* feat(content-manager): test available locales returns fields with validation

* fix(content-manager): ensure sensitive info not exposed in available statuses

* fix(content-manager): sanitize document metadata available status

* fix(content-manager): sanitize document metadata available status at controller level

* fix(content-manager): populate only for validatable fields

* chore: clean up

* chore: clean up

* chore: clean up

* fix(content-manager): build issues

* fix(content-manager): allow null locales

* fix(content-manager): history service (#20185)

* fix(content-manager): history service

* chore(content-manager): clean up

* fix: pr feedback

* chore: update actions deps

* chore: update utility deps

* chore: upgrade sentry

* chore: upgrade graphql-tools

* fix: http-errors ugprade

* chore: add fs-extra types where needed

* docs(typescript): type system cheat sheet

* chore!: remove deprecated verbose option from ts:generate-types

* chore: clean up

fix(content-manager) correctly count bulk publish results

* fix(content-manager): pr feedback and test improvements

* feat(i18n): bulk locale publish modal in CM edit view (#20069)

* feat(i18n): wip bulk locale publish modal

* fix(i18n): wip - fe bulk locale publish

* feat(content-manager): multi locale publish, integrate with backend and add basic e2e test

* feat(i18n): wip - display validation errors in bulk locale modal

* chore: clean up

* chore(i18n): design system changes

* feat(i18n): display correct status after publish and clean up error messaging

* feat(i18n): access onclose from modal body

* fix(i18n): selected locale change

* fix(i18n): locale table state

* fix(i18n): edit view e2e test

* chore(content-manager): validation tweak wip

* feat(i18n): cover validation cases in i18n e2e tests

* chore: clean up

* fix(i18n): edit view more document actions disabled state

* chore: feedback

* fix(i18n): send all params to publish many

* fix(i18n): place bulk locale publish 3rd in array

* fix(content-manager): validation error extraction

* fix(content-manager): pr feedback

* fix: build

* chore(content-manager): simplify exports

* chore(i18n): revert package

---------

Co-authored-by: Alexandre Bodin <bodin.alex@gmail.com>
Co-authored-by: Jean-Sébastien Herbaux <jean-sebastien.herbaux@epitech.eu>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>

* fix(i18n): disable publish button after bulk locale publish

* fix(content-manager): ce e2e fix

* chore: typography

* fix(i18n): e2e edit view test

* fix: wip date comparison

* fix: wip date comparison

* fix(content-manager): simplify date comparison

* fix: clean up metadata api test

* chore: update api tests

* fix: draft versions must be ahead of published to be considered modified

* fix: published modified calculation

* fix: clean up

* fix: simplify draft and publish comparison

* chore: clean up

* fix: flaky fe tests

* fix: pr feedback

* fix(i18n): error message extraction in bulk locale modal

* chore: remove old publish action

* chore: pr feedback

* chore: refactor error types & validation messages

* chore: use anchor link for locale changes

* chore: fix releases

* fix: clean up

* chore: snapshot

---------

Co-authored-by: Marc-Roig <marc12info@gmail.com>
Co-authored-by: Alexandre Bodin <bodin.alex@gmail.com>
Co-authored-by: Jean-Sébastien Herbaux <jean-sebastien.herbaux@epitech.eu>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
2024-05-10 18:20:35 +01:00
Marc RoigandJamie Howard 521cd3f8cd fix: improve CM modified date comparison (#19898)
* fix: date comparison

* fix(content-manager): simplify date comparison

* fix: clean up metadata api test

* fix: draft versions must be ahead of published to be considered modified

* fix: published modified calculation

* fix: clean up

* fix: simplify draft and publish comparison

* chore: clean up

* fix: flaky fe tests

* fix: pr feedback

---------

Co-authored-by: Jamie Howard <jamie.howard@strapi.io>
2024-05-09 19:19:18 +02:00
Fernando Chávez 3fdf1a575b enhancement: migrate bulk publish & unpublish to v5 (#20184)
* chore: migrate bulk publish & unpublish to v5

* chore: change findLocales type to accept arrays

* chore: fix lint error

* chore: migrate bulkDelete to v5 (#20161)

* chore: migrate bulkDelete to v5

* chore: change findLocales type to accept strings array

* fix: docs prettier styles

* chore: remove console.log

* enhancement: migrate countManyDraftRelations to v5

* only publish not published entries

* use strapi query directly on bulkPublish

* fix api tests for bulk publish

* apply jamie feedback
2024-05-07 16:58:56 +02:00
Marc Roig 8e9b152292 fix: document service find many pagination (#20178) 2024-05-06 14:52:48 +02:00
markkaylor e60ec18292 chore(history): refactor restore and add tests for relations (#20179) 2024-05-06 10:54:07 +02:00
Marc Roig 23fa63efeb feat: webhooks (#20129)
* feat: webhooks

* feat: ignore entry.publish findOne

* chore: type entry

* feat: refactor publication methods to not trigger entry.delete webhook (#20136)

* feat: refactor publication methods

* fix: remove unnecessary chain op in db query

* feat: emit document. as webhook

* feat: register  legacy events

* feat: only trigger entry webhooks

* feat: rename webhook to event

* feat: event manager

* fix: repository

* feat: webhook tests

* fix: api tests

* fix: non localized fields api test

* fix: refactor event hub

* fix: eventhub type

* fix: event hub unit test

* fix: remove all subscribers

* fix: webhook api test
2024-05-03 11:41:42 +02:00
Alexandre Bodin 792129f7b4 chore: make document service api more consistent 2024-04-24 18:15:02 +02:00
Mark Kaylor e765f29187 fix(tests): update history api tests to created ids 2024-04-24 17:26:58 +02:00