125 Commits

Author SHA1 Message Date
Rémi de Juvigny
5e751dbf11
feat: ai generated image metadata (#24422)
* feat: chat

feat: apply changes
feat: integrate with ctb

feat: marker

chore: remove comment

feat: new chat

feat: copy message

feat: upload modal

feat: upload file

feat: errors and stop chat

chore: refactor transforms
chore: format relations

chore: chat title

chore: remove architect dependency

feat: empt state

chore: improve text area focus

* feat: chat imports

feat: resizable text area
fix: re add chat
chore: translations
feat: env vars

fix: minor chat issues

feat: feedback

fix: rebase

feat: import folder

feat: limits

feat: attachments dropzone

chore: file attachments cleanup
chore: track chat id

feat: figma import

fix :token

feat: figma token
fix: attribute status when chat makes updates

feat: image upload

* feat: staging integration

* chore: remove logs

* feat: use tool call result instead of annotation

* fix: invalid component uid

* chore: chat input focus ring

* fix: ui issues

* fix: default draft and publish and do not modify singular name

* fix: minor transforms

* fix: linting

* test(front): update snapshots

* chore: fix misplaced getstarted project schema

* chore: remove unused import

* security: validate exact path of host

* fix: define process better for playwright to work

* fix: process env in vite config for playwright

* chore: use production url

* feat(ctb): Tracking events for AI Chat interaction (#23731)

* feat(content-type-builder): WIP tracking events for chat interactions

* fix: typescript build errors

* fix: event name and build errors

* chore: send ai key with analytics

* chore: actually send licenseKey

* chore: send ailicensekey with groupproperties

* fix: didStartNewChat

* chore: track new chats

* feat: enhance attachment type management in AI chat components

* fix: update chat status handling in ChatProvider component

* feat: add optional aiLicenseKey to Strapi interface

---------

Co-authored-by: Jamie Howard <jhoward1994@gmail.com>

* refactor: remove didusersendmessage tracking event (#23777)

* fix: merge conflict

* fix: send projectId to AI server

* feat: add a enabled config for AI features (#24060)

* feat: add getAiToken endpoint (#24172)

* feat: add getAiToken route

* fix: change route name, remove project id

* fix: type issue and fix schema

* feat: retrieve ai token from frontend (#24226)

---------

Co-authored-by: Jamie Howard <jhoward1994@gmail.com>

* fix: use primary500 for links in ai chat

* chore: migrate to AI SDK v5 (#24252)

* fix: migrate code for v5

* t:wq

* feat: push schemas to ctb

* chore: remove old code

* chore: remove ts-no-check

* chore: fix comment

* fix: ai server logs (#24318)

* test(back): fix error log tests

---------

Co-authored-by: Marc Roig <marc12info@gmail.com>

* fix: configure ai ctb csp middleware without overriding user or default config

* future(upload): generate image metadata on file upload (#24365)

* chore: create aiMetadata service with isEnabled

* chore: extract getAiToken to service

* fix: unit test

* future(upload): generate metadata with ai

* fix: ts build

* fix: only send images to ai server

* test: add unit tests

* fix: unit test

---------

Co-authored-by: markkaylor <mark.kaylor@strapi.io>

* AI media lib bulk update (#24414)

* feat(packages): adding endpoint for bulk update

* feat(packages): linting

* feat(packages): adding tests

* feat(packages): cleanup

* feat: guided tour for ai ctb (#24411)

* feat(upload): adding aiMetadata into settings (#24468)

feat(upload): adding aiMetadata into settings

* feat: add AI upload modal (#24407)

* chore: create aiMetadata service with isEnabled

* chore: extract getAiToken to service

* fix: unit test

* future(upload): generate metadata with ai

* feat: add AI upload modal

* feat: add edit and delete to upload modal

* fix: remove sparkle icon on edit

* fix: add error handling

* chore: refactor ai upload modal reducer

* fix: catch ai token generation error

* chore: add useBulkEdit hook

* feat: connect to bulk edit endpoint

* fix: e2e test

* fix: ci in both ce and ee

---------

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

* feat(upload): applying ai enabled logic for media library (#24486)

feat(upload): applying ai enabled logic for media library

* fix: sparkle icon

* fix: set ai server prod url

* fix: default config to enabled

* fix: cursor moving to the end when editing text

* fix: upload in the right folder

* fix: close modal when deleting last item

* chore: use STRAPI_AI_URL everywhere

* fix: bulk upload from frontend

* fix: restore sparkle icon on inputs

* fix: unit test ci

* feat(upload): generating metadata from thumbnail (#24515)

* feat(upload): generating metadata from thumbnail

* feat(upload): fixing linting issue

* feat(upload): fixing tests and addressiing feedback

* feat(upload): fixing lint

* fix: check for cms-ai entitlement

* fix: tests

* fix: race condition failing front unit tests

---------

Co-authored-by: Marc-Roig <marc12info@gmail.com>
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Bassel Kanso <bassel.kanso@strapi.io>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Jamie Howard <jhoward1994@gmail.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Bassel Kanso <basselkanso82@gmail.com>
Co-authored-by: Ziyi <daydreamnation@live.com>
Co-authored-by: markkaylor <mark.kaylor@strapi.io>
Co-authored-by: Araksya Gevorgyan <31159659+araksyagevorgyan@users.noreply.github.com>
Co-authored-by: Adrien L <thewebsdoor@gmail.com>
2025-10-07 06:14:34 -04:00
Ben Irvin
723a2f0c62 fix: support auth.options config in sessions (#24460)
* fix: support auth.options config in sessions

* chore: fix lint

* feat(users-permissions): add jwt algorithm configuration

* refactor: remove deprecated admin.auth.options warnings

* test(token): add TypeScript error suppression for mock config in token tests

* feat(bootstrap): re-add warning for deprecated expiresIn option in session settings

---------

Co-authored-by: Jamie Howard <jhoward1994@gmail.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
2025-09-29 16:58:18 +03:00
Jamie Howard
d23f1485e5
feat: Advanced Session Configuration (#24346) 2025-09-23 12:04:29 +02:00
markkaylor
536eed0201
fix: database is corrupt with orphaned relations (#24316)
* fix: database is corrupt with orphaned relations

* chore: move script to document service and refactor

* fix: refactoring cleanup script

* fix: some improvements

* test(api): add unidirectional join table repair tests

* test(api): remove debug logs

* fix: orphaned relation nested compo (#24387)

---------

Co-authored-by: Bassel Kanso <basselkanso82@gmail.com>
Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
2025-09-23 10:11:48 +02:00
Bassel Kanso
a1da9b829e
fix: syncing components in draft and publish relations (#24227)
Co-authored-by: Mark Kaylor <mark.kaylor@strapi.io>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
2025-09-03 16:39:31 +02:00
Adrien L
a8a53e3e7c
fix: wrong count of non draftAndPublish entries (#24211) 2025-08-26 09:45:23 +02:00
Jamie Howard
e5d4b412da
Fix plugin content-api route extensions (#24147)
* fix: content-api route extension for i18n and users-permissions

* refactor: simplify tests to catch breaking change

* test: cli for openapi plugin routes

* refactor: implement createcontentapiroutesfactory for content-api routes across multiple packages

* fix: more accurate message

* chore: formatting

* chore: cleanup backward compatibility tests

---------

Co-authored-by: Ziyi Yuan <daydreamnation@live.com>
2025-08-18 12:28:39 +01:00
markkaylor
e4700a5963
enhancement: improve guided tour (#24094) 2025-08-18 09:54:58 +02:00
Ben Irvin
8058daf82c
test(api): add test for viewable api tokens (#24064) 2025-07-31 11:38:34 +02:00
Adrien L
6d264f56ba
feat: key statistics homepage widget (#23938) 2025-07-31 09:36:25 +02:00
Rémi de Juvigny
14e074cb0a
fix: preserve non-localized fields when updating localized content for new locale (#23830)
* fix: do not change unlocalized fields when updating localized field via doc service

* chore: add api test

* Update tests/api/core/strapi/document-service/update.test.api.ts

* chore: use fillNonLocalizedAttributes util

* chore: move to i18n utils file
2025-07-01 10:43:44 -04:00
markkaylor
ed7c7c54ff
future: add admin endpoint to get guided tour meta data (#23786) 2025-06-26 16:21:02 +02:00
Aurélien MANCA
3561ab6db9
feat(uid): add regex attribute (#23141) 2025-06-10 16:34:28 +02:00
markkaylor
063e359981
fix: one to many relations returns published and draft versions (#23673) 2025-06-06 17:06:45 +02:00
Convly
70576132e2 Merge branch 'main' into develop 2025-05-29 15:54:35 +02:00
Jamie Howard
1359c9b4c7
fix(document-service): implement document ID uniqueness check and add corresponding tests (#23577)
* feat(document-service): implement document ID uniqueness check and add corresponding tests

* refactor(document-service): update type for whereClause and improve duplicate documentId tests

* refactor(document-service): simplify uniqueness check comment in createEntriesService

* feat(document-service): enhance document ID uniqueness check with draft/published state handling

* refactor(document-service): change test lifecycle hooks to beforeAll/afterAll for improved performance
2025-05-29 11:40:35 +01:00
Alexandre BODIN
26dc5242b4 Merge branch 'releases/5.14.0' into chore/ctb-editor 2025-05-27 08:37:48 +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
Alexandre BODIN
76db82f48f Merge branch 'develop' into chore/ctb-editor 2025-04-29 16:45:41 +02: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
c9daf3573d chore: i18n defaults 2025-04-22 15:20:00 +02:00
Alexandre Bodin
0ffa0c9175 feat: ctb lifting 2025-04-22 15:20:00 +02:00
Jean-Sébastien Herbaux
f271284c75
fix(database): improve sub queries handling in the qb (#23129) 2025-03-20 10:31:36 +01:00
Marc-Roig
2f08d92b24
chore: todo tests 2025-03-12 11:47:51 +01:00
Rémi de Juvigny
37494b34d1
fix: apply advanced permissions in content manager home widgets (#22921)
* fix: apply permission conditions in content manager home widgets

* chore: extract getPermissionChecker
2025-02-18 11:18:52 -05:00
Ben Irvin
f0bec13467
fix: password validation tests (#22904) 2025-02-17 16:14:50 +01:00
Ben Irvin
082492f357 Merge branch 'develop' into advisory-fix-1 2025-02-14 10:59:05 +01:00
dhoko
4656e5d415
enhancement: better log informations about the errors for yup validations messages (#22001) 2025-02-06 15:42:10 +02:00
Alexandre Bodin
3be592e7ed Merge branch 'develop' into chore/rollup 2025-01-29 17:47:50 +01:00
Alexandre Bodin
cffeb3f30b chore: touch ups 2025-01-28 19:17:55 +01:00
Convly
8d3ee91451 test: update token name in review workflows test 2025-01-27 18:22:21 +01: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
Ben Irvin
74fa0d7baa test(api): login with pass that previously validated 2025-01-23 15:38:57 +01:00
Ben Irvin
360ddc95d6 test(api): password byte length 2025-01-23 15:29:52 +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 Maradiya
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
Rémi de Juvigny
110b429be2
feat: new admin homepage (#22346)
* feat: init new homepage with custom greeting (#22269)

* feat: init new homepage

* fix: e2e test

* chore(homepage): move guided tour (#22338)

* enhancement: create homepage widget component

* enhancement(homepage): create recently edited documents endpoint (#22355)

* chore: init recent documents route and controller

* enhancement: add recently updated docs endpoint

* chore: add endpoint types

* chore: add api tests

* fix: ts build

* enhancement: add generic widget component

* enhancement: add homepage recently edited widget

* chore: add compound component

* fix: unit test

* enhancement: add no data state

* enhancement: add no data variant

* future(homepage): add generic widget component (#22369)

* enhancement: create homepage widget component

* enhancement: add generic widget component

* chore: add compound component

* fix: unit test

* enhancement: add no data variant

* fix: widget height

* enhancement(homepage): get recent publish activity (#22377)

* chore: tracking and a11y improvements

* chore: add e2e tests

* fix: more cache invalidation

* chore: update api tests

* fix: remove cm dependency

* fix: broken status

* enhancement(home): add recently published widget (#22391)

* fix(home): replace title documentId with document title (#22403)

* fix(home): make locale defined or null to get the correct status (#22405)

* fix(homepage): make back button work when document has a locale (#22450)

* release: 5.6.0

* Revert "release: 5.6.0"

This reverts commit 77ad0efc79afd9777d140f84e8abc47cda26d1d9.

* release: 5.6.0

* fix(homepage): add missing styles for error, loading, and empty states (#22448)

* fix(homepage): add missing styles for error, loading, and empty states

* fix: always include title and icon

* chore: refactor to not rerender static content

* chore: reuse table component

* fix: single type link

---------

Co-authored-by: Rémi de Juvigny <remi.dejuvigny@strapi.io>

* fix: minor ui issues

* fix: hide doc status when no d&p (#22409)

* fix: hide doc status when no d&p

* enhancement: show dash instead

---------

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

* v5.7.0-beta.0

* fix: package versions

* fix: package version

---------

Co-authored-by: Mark Kaylor <mark.kaylor@strapi.io>
Co-authored-by: Marc-Roig <marc12info@gmail.com>
2025-01-06 10:03:49 -05:00
Simone
f09127d8df
fix: renable the basic relations test (#22464) 2024-12-18 14:01:18 +01:00
Alexandre Bodin
e2624fe821 Merge branch 'main' into develop 2024-12-17 12:26:11 +01:00
Ben Irvin
0c6e0953ae fix: remove lookup param from doc service 2024-12-17 11:46:02 +01:00
Marc Roig
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
Ben Irvin
575be3afd4
enhancement(database): add repair manager with component deletion fix (#22267) 2024-12-16 12:56:05 +01:00
Rémi de Juvigny
59cb734ff4 chore: fix tests 2024-12-04 10:02:35 +01:00
Ben Irvin
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
Marc Roig
d103412420
fix: stage change should not update modified status (#22069)
* fix: stage change should not update modified status

* feat: assiignees

* chore: add comment

* fix: remove assignee

* chore: api tests
2024-11-07 15:28:19 +01:00
Fernando Chávez
906f82d718
feat(content-manager): integrate review workflows with releases (#21882)
* feat(review-workflows): adding required stage for publishing (#21380)

* feat(review-workflows): adding required stage for publishing

* fix(review-workflows): fixs on rw required stage

* fix(review-workflows): selected required stage when stage name changed

* fix(review-workflows): bug when creating new rw

* feat(review-workflows): check entry stage before publish (#21400)

* feat(content-releases): add stage check to releases details page (#21497)

* feat(content-releases): add stage check

* fix(content-releases): apply suggestions on releases x review workflows

* feat(content-releases): considered review stage when getting the action status (#21612)

* feat(content-releases): considered review stage when getting the action status

* fix: apply changes to reviewWorkflows on schema

* fix: add api test for review workflows publish stage

* fix: api tests

* fix: validation message errors (#21878)

* feat: add workflowId & hasRequiredStageToPublish to workflows metrics events (#21897)

* fix(content-releases): skip flaky test

* fix: update accessible name in history.spec.ts

---------

Co-authored-by: Mark Kaylor <mark.kaylor@strapi.io>
2024-11-04 10:18:40 +01:00
Marc Roig
c222e1c4de
feat: fix filters attribute name (#21547)
* feat: fix filters attribute name

* chore: simplify test

* chore: pr suggestions

* fix: short hand populate

* chore: comment

* fix: lint

* chore: suggestions

* fix: assert
2024-10-28 09:28:04 +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 Roig
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