364 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
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
Jamie Howard
7af2e99241
Add new @strapi/openapi package (#24024)
* chore(openapi): add new @strapi/openapi package with initial setup (#23173)

* enhancement(openapi): add routes collection (#23182)

* chore(openapi): add new @strapi/openapi package with initial setup and configuration

* fix: lint the test folder

* chore(openapi): add coverage/ to .eslintignore for better linting exclusion

* test(openapi): update Jest config with refined test paths and coverage

* chore: remove unused test and update openapi dependencies

* feat(openapi): add route providers, collector, and matcher

* test(openapi): add unit tests for route matching and providers

* fix: make the AbstractRoutesProvider constructor public

* chore: update test paths and imports to simplify structure

* test: update route provider tests to use dynamic fixture lengths

* feat: add basic openapi document generation (#23365)

* chore: update openapi dependencies

* feat(openapi): advanced schema generation (#23467)

* chore: rename openapi:generate CLI command to openapi generate (#23610)

* chore(openapi): add experimental warning message for OpenAPI generation feature (#23608)

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

* chore: update OpenAPI types to OpenAPIV3_1 across the codebase (#23609)

* chore: merge origin/develop

* chore: update zod dependency from beta version to 3.25.67 across the codebase using zod/v4 where needed

* fix(strapi): add output option for openapi generation command (#23849)

* feat(core): add uid transformation utility for openapi compliant names (#23833)

* feat(core): add uid transformation utility for openapi compliant names

* chore: version openapi to 5.16.1

* chore(core): update uid parameter to use internal types

* fix(core): simplify global registry check

* fix(core): remove unnecessary type assertion

* fix(core): add type assertions in validation attributes

* fix(core): remove unused import

* chore: update @strapi/openapi to 5.18.1

* Add zod schema validation to content api routes (#23886)

* feat(i18n): zod validation for locale content api routes

* feat(email): integrate zod for email content api routes

* feat(upload): wip partial zod route validation

* feat: add validation for upload and ctb content api routes (#23924)

* feat: add validation for content API routes and upload

* fix: fix linting errors and prettier error

* fix: add missing schemas

* chore(content-type-builder): more accurate zod descriptions

* Centralise AbstractRouteValidator to strapi utils (#23962)

* chore(utils): centralise abstractroutevalidator in utils for package use and schema aware extension in strapi core

* chore(core): update query parameter transformer usage in convert-query-params tests

* feat(core): enhance schema validation error handling and logging

* fix: revert incorrect changes

---------

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

* feat(users-permissions): zod schemas for content-api routes (#23997)

* feat(users-permissions): zod schemas for content-api routes

* fix(users-permissions): formatting

* chore: include content type for API route request body

---------

Co-authored-by: Ziyi <ziyi.yuan@strapi.io>

* chore: minor clean up

---------

Co-authored-by: Jean-Sébastien Herbaux <jean-sebastien.herbaux@epitech.eu>
Co-authored-by: Ziyi <ziyi.yuan@strapi.io>
2025-07-28 12:02:09 +01:00
Rémi de Juvigny
68883a121b
fix: sign file URLs in upload service and in graphql (#23834)
* fix: add URL signing support for media files in upload service and GraphQL resolvers

* fix: graphql api test

* fix: graphql association

* chore: remove unnecessary tests

* fix: sign when querying media files directly

* chore: removed signedData

* fix: backend ci

* fix: pr feedback

* fix: signed images not loading in media input

* fix: make gql unit test pass ci

* chore: move rawData
2025-07-15 12:16:33 -04:00
Alexandre BODIN
9e6d59bbf9
Merge branch 'develop' into feature/generate-file-name 2025-06-06 09:00:38 +02:00
Laurens Kling
9c04fd0da8 chore: create strapi mock for test 2025-06-05 19:33:15 +02:00
Laurens Kling
7de63df3ae chore: move generateFileName to image-manipulation to allow overriding 2025-06-04 19:40:09 +02:00
Marc-Roig
08528cceda
fix: run cronjobs closer to app start 2025-03-17 19:49:40 +01:00
Alexandre Bodin
cffeb3f30b chore: touch ups 2025-01-28 19:17:55 +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
Alexandre BODIN
55dabf6295
Merge pull request #21407 from strapi/chore/fixInternalCronTasks
enhancement: change all internal cron tasks to named tasks
2024-09-24 17:22:20 +02:00
Simone
c7b2b2abcc
chore: migrate media-library initial setup (#21375)
* chore: migrate and create config files for the migration

* chore: migrate test utils to TS

* chore: fix the typo

* chore: fix eslint errors

* chore: fix prettier error
2024-09-24 11:01:14 +02:00
Derrick Mehaffy
6e4ffcae2c chore: change all internal cron tasks to named tasks 2024-09-20 21:06:51 -07:00
Marc Roig
ae299ee651
feat: Private s3 buckets (#20861)
* feat: sign media files

* fix: bootstrap test
2024-07-23 09:40:57 +02:00
Mark Kaylor
94657d7e77 Merge branch 'develop' of github.com:strapi/strapi into chore/merge-develop-to-v5-main 2024-06-06 17:03:30 +02:00
Jean-Sébastien Herbaux
adb9db5660
Fix: Query Validation in Files' Admin API (#20389)
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
2024-06-05 15:47:11 +02:00
Convly
33413bf56c fix: style 2024-05-30 13:34:00 +02:00
Convly
481550a0d4 Merge branch 'refs/heads/develop' into v5/main
# Conflicts:
#	.github/actions/check-pr-status/package.json
#	docs/docs/docs/01-core/admin/05-features/authentication.md
#	docs/docusaurus.config.js
#	docs/yarn.lock
#	examples/getstarted/package.json
#	examples/kitchensink-ts/package.json
#	examples/kitchensink/package.json
#	examples/plugins/workspace-plugin/package.json
#	lerna.json
#	package.json
#	packages/admin-test-utils/package.json
#	packages/cli/create-strapi-app/package.json
#	packages/cli/create-strapi-starter/package.json
#	packages/cli/create-strapi/package.json
#	packages/core/admin/admin/src/App.tsx
#	packages/core/admin/admin/src/components/AuthenticatedApp.tsx
#	packages/core/admin/admin/src/components/Context.tsx
#	packages/core/admin/admin/src/components/LeftMenu.tsx
#	packages/core/admin/admin/src/components/PrivateRoute.tsx
#	packages/core/admin/admin/src/content-manager/pages/ListSettingsView/index.jsx
#	packages/core/admin/admin/src/content-manager/pages/ListView/components/BulkActions/PublishAction.tsx
#	packages/core/admin/admin/src/content-manager/pages/ListView/components/TableCells/CellContent.tsx
#	packages/core/admin/admin/src/features/Configuration.tsx
#	packages/core/admin/admin/src/index.ts
#	packages/core/admin/admin/src/pages/ProfilePage.tsx
#	packages/core/admin/admin/src/pages/UseCasePage.tsx
#	packages/core/admin/ee/server/src/services/metrics.ts
#	packages/core/admin/package.json
#	packages/core/admin/server/src/bootstrap.ts
#	packages/core/content-manager/package.json
#	packages/core/content-releases/admin/src/components/CMReleasesContainer.tsx
#	packages/core/content-releases/admin/src/components/ReleaseListCell.tsx
#	packages/core/content-releases/admin/src/index.ts
#	packages/core/content-releases/admin/src/pages/ReleaseDetailsPage.tsx
#	packages/core/content-releases/admin/src/pages/tests/ReleaseDetailsPage.test.tsx
#	packages/core/content-releases/admin/src/services/release.ts
#	packages/core/content-releases/package.json
#	packages/core/content-releases/server/src/controllers/release.ts
#	packages/core/content-type-builder/package.json
#	packages/core/core/.gitignore
#	packages/core/data-transfer/package.json
#	packages/core/database/package.json
#	packages/core/database/src/query/helpers/populate/apply.ts
#	packages/core/email/package.json
#	packages/core/helper-plugin/package.json
#	packages/core/permissions/package.json
#	packages/core/strapi/package.json
#	packages/core/types/package.json
#	packages/core/upload/admin/src/components/AssetDialog/BrowseStep/tests/__snapshots__/index.test.jsx.snap
#	packages/core/upload/admin/src/pages/App/ConfigureTheView/components/tests/__snapshots__/Settings.test.jsx.snap
#	packages/core/upload/admin/src/pages/App/ConfigureTheView/tests/__snapshots__/ConfigureTheView.test.jsx.snap
#	packages/core/upload/package.json
#	packages/core/upload/server/services/provider.js
#	packages/core/upload/server/services/upload.js
#	packages/core/upload/server/src/services/image-manipulation.ts
#	packages/core/upload/server/tsconfig.eslint.json
#	packages/core/utils/package.json
#	packages/generators/app/package.json
#	packages/generators/app/src/utils/db-client-dependencies.ts
#	packages/generators/generators/package.json
#	packages/plugins/cloud/package.json
#	packages/plugins/color-picker/package.json
#	packages/plugins/documentation/package.json
#	packages/plugins/graphql/package.json
#	packages/plugins/i18n/admin/src/components/LocaleListCell.tsx
#	packages/plugins/i18n/admin/src/contentReleasesHooks/releaseDetailsView.ts
#	packages/plugins/i18n/admin/src/index.ts
#	packages/plugins/i18n/package.json
#	packages/plugins/sentry/package.json
#	packages/plugins/users-permissions/package.json
#	packages/providers/email-amazon-ses/package.json
#	packages/providers/email-mailgun/package.json
#	packages/providers/email-nodemailer/package.json
#	packages/providers/email-sendgrid/package.json
#	packages/providers/email-sendmail/package.json
#	packages/providers/upload-aws-s3/package.json
#	packages/providers/upload-cloudinary/package.json
#	packages/providers/upload-local/package.json
#	packages/utils/api-tests/package.json
#	packages/utils/eslint-config-custom/package.json
#	packages/utils/logger/package.json
#	packages/utils/tsconfig/package.json
#	packages/utils/typescript/package.json
#	packages/utils/upgrade/LICENSE
#	packages/utils/upgrade/bin/upgrade.js
#	packages/utils/upgrade/package.json
#	packages/utils/upgrade/packup.config.ts
#	scripts/front/package.json
#	tests/e2e/constants.ts
#	tests/e2e/tests/content-releases/releases-page.spec.ts
#	yarn.lock
2024-05-30 13:12:27 +02:00
Ben Irvin
7a6d9a2b0e
enhancement!: validate input in content API create and update controllers
Co-authored-by: Jean-Sébastien Herbaux <Convly@users.noreply.github.com>
2024-05-07 11:22:22 +02:00
Alexandre BODIN
0742c5784d
enhancement: use file path in place of streams to optimize sharp fragmentation & libvips caching (#20080)
Co-authored-by: DMehaffy <derrickmehaffy@gmail.com>
2024-04-17 16:27:48 +02:00
Ben Irvin
18019758d6
enhancement!: create sends 201 status code 2024-04-15 14:03:47 +02:00
Josh
bc71a96d76
chore(pack-up): remove from monorepo (v5) (#20092)
* chore(pack-up): remove from repo

* chore: type fixes

* chore: add suggestions to tighten types

Co-authored-by: Ben Irvin <ben.irvin@strapi.io>

---------

Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
2024-04-12 13:39:49 +01:00
Alexandre Bodin
bf35cde68f chore: update koa-body 2024-04-03 22:48:48 +02:00
Alexandre Bodin
55ae34e5dc chore: introduce providers to simplify main class 2024-04-03 14:24:15 +02:00
Alexandre Bodin
eb61511884 chore: use strapi.service instead of strapi.admin.services 2024-04-03 14:24:15 +02:00
Ben Irvin
791bc2c971
fix: validation of upload filename 2024-04-03 09:13:44 +02:00
Josh
660b779c4c Merge branch 'develop' into v5/main 2024-04-02 10:11:20 +01:00
Marc Roig
ae6b92318c
fix: sanitize file name when uploading image (#19913) 2024-03-27 09:47:35 +01:00
Alexandre Bodin
3f6a8109ea chore: introduce query-params service to remove strapi.global dep in utils 2024-03-25 14:03:32 +01:00
Alexandre Bodin
fed8ac1cb7 chore: remove usage of strapi global in traverse 2024-03-25 08:52:10 +01:00
Alexandre Bodin
e68afb0e1e chore: inverse control of contentAPI sanitize & validate 2024-03-21 22:26:41 +01:00
Alexandre Bodin
a9db1e42c6 chore: migrate upload plugin to typescript 2024-03-21 09:02:17 +01:00
Josh
7dc4206d08 Merge branch 'develop' into v5/main 2024-03-15 16:11:49 +00:00
Alexandre Bodin
a95285578b chore: database enhancements 2024-03-13 22:13:40 +01:00
Alexandre Bodin
5ffb3c7100 chore: deprecate entity-service and delegate to document service 2024-03-12 21:02:33 +01:00
Ben Irvin
ab2af1e539
fix(core): use module uid for config namespace instead of dot notation 2024-03-11 12:28:46 +01:00
Alexandre Bodin
8d53207f8e chore: remove template configuration from utils 2024-03-09 13:08:41 +01:00
Alexandre Bodin
4b8513e6df chore: migration upload plugin 2024-03-08 10:59:36 +01:00
Giulio Montagner
836f74517f
fix: add sizeInBytes on resized and optimized images (#19707) 2024-03-07 18:31:55 +01:00
Josh
84b8d2ccd4 Merge branch 'develop' into v5/main 2024-02-28 16:01:39 +00:00
Giulio Montagner
f8af92b375
fix: add sizeInBytes for upload providers (#19593) 2024-02-23 11:37:26 +01:00
Ben Irvin
01dfca22b2
chore: remove deprecated isSupportedImage 2024-01-18 11:50:21 +01:00
Marc-Roig
8aca4eae6a
Merge branch 'main' into v5/main 2023-11-09 12:13:13 +01:00
Alexandre BODIN
ae792fb42c
Release 4.15.1 (#18646)
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Marc Roig <marc12info@gmail.com>
2023-11-03 08:37:53 +01:00
Thanos
524af8055c
fix(upload): media library image signedUrl cache busting issue (#18541)
* media library image signedUrl cache busting issue references #18443

* date query param typo

* add asset isUrlSigned property, used as asset url cache busting condition

* removed cacheBustUrl function, added inline comment to describe functionality
2023-10-31 15:28:52 +00:00
Alexandre Bodin
0b5590b0eb chore(core/strapi): extend container in strapi class 2023-10-24 17:18:59 +01:00
Ben Irvin
1a56693a91 cleanup 2023-08-17 17:24:11 +02:00
Ben Irvin
dd080bf280 fix missing sanitize 2023-08-11 17:08:03 +02:00
Ben Irvin
c1f0f87949 fix typo 2023-08-11 17:04:11 +02:00
Ben Irvin
dce86bec5c validate does not sanitize 2023-08-11 13:13:44 +02:00