Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix undefined filter value #8490

Merged
merged 9 commits into from
Feb 1, 2021
Merged

Conversation

MattieBelt
Copy link
Collaborator

@MattieBelt MattieBelt commented Oct 27, 2020

What does it do?

Throw an error when a filter value is undefined instead of skipping it/filtering it out.

Examples

await strapi.query('category').findOne({ id: 1 });

Returns 200 with the first entry with id=1

await strapi.query('category').findOne({ id: undefined });

Returns 400: The field 'id' in your where filter has undefined as value.

await strapi.query('category').findOne({ unknownField: 1 });

Returns 400: Your filters contain a field 'unknownField' that doesn't appear on your model definition nor it's relations

await strapi.query('category').findOne({ undefinedUnknownField: undefined });

Returns 400: The field 'undefinedUnknownField' in your where filter has undefined as value.

Why is it needed?

To let people know they used an undefined value to find records.

Related issue(s)/PR(s)

Fixes #8201

Fixes strapi#8201

Signed-off-by: MattieBelt <mattiasvandenbelt@gmail.com>
@MattieBelt MattieBelt requested a review from a team as a code owner October 27, 2020 11:26
@MattieBelt MattieBelt closed this Oct 27, 2020
@MattieBelt MattieBelt reopened this Oct 27, 2020
@codecov
Copy link

codecov bot commented Oct 27, 2020

Codecov Report

Merging #8490 (d223c84) into master (d7d3fd1) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #8490      +/-   ##
==========================================
- Coverage   35.09%   35.08%   -0.01%     
==========================================
  Files        1308     1308              
  Lines       14456    14460       +4     
  Branches     1438     1439       +1     
==========================================
  Hits         5074     5074              
- Misses       8473     8476       +3     
- Partials      909      910       +1     
Flag Coverage Δ
front 26.66% <ø> (ø)
unit 54.87% <0.00%> (-0.06%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
packages/strapi-utils/lib/build-query.js 17.80% <0.00%> (-1.04%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 53c7fb0...d223c84. Read the comment docs.

@alexandrebodin alexandrebodin added this to the 3.3.2 milestone Nov 10, 2020
Fixes strapi#8201

Signed-off-by: MattieBelt <mattiasvandenbelt@gmail.com>
@strapi-cla
Copy link

strapi-cla commented Nov 30, 2020

CLA assistant check
All committers have signed the CLA.

@alexandrebodin
Copy link
Member

Hi @MattieBelt we merged some changes. you can reapply your improvements now :)

@alexandrebodin alexandrebodin modified the milestones: 3.4.0, 3.4.1 Dec 17, 2020
@MattieBelt
Copy link
Collaborator Author

Hi @alexandrebodin, thanks for letting me know! I'll look into it as soon as I have some time!

@alexandrebodin alexandrebodin modified the milestones: 3.4.1, 3.4.2 Jan 4, 2021
@alexandrebodin
Copy link
Member

Hi @MattieBelt did you have time to check the conflicts ?

@MattieBelt
Copy link
Collaborator Author

@alexandrebodin looking into it now

@MattieBelt
Copy link
Collaborator Author

Resolved and updated. Ready to be merged @alexandrebodin

@alexandrebodin
Copy link
Member

Thanks for the updates. I'm currently wondering if we should categorize it as a bug fix or a breaking change as it will start throwing errors in place were it didn't previsouly. I'm leaning towards bug. wdyt ?

@MattieBelt
Copy link
Collaborator Author

I wouldn't call it an breaking change because it should throw an error 'in this place' so it's indeed more a bug fix.

If someone's application breaks because he receives errors it will only help, because it will show the application was broken and was giving 'false' results back 😉

@alexandrebodin alexandrebodin added source: core:strapi Source is core/strapi package issue: enhancement Issue suggesting an enhancement to an existing feature labels Jan 8, 2021
@alexandrebodin alexandrebodin removed this from the 3.4.2 milestone Jan 13, 2021
Signed-off-by: MattieBelt <mattiasvandenbelt@gmail.com>
Copy link
Member

@alexandrebodin alexandrebodin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks 💯

@Fensterbank
Copy link

Fensterbank commented Feb 5, 2021

@MattieBelt I don't understand, why this was implemented.
I thought setting filters as undefined to let them be ignored is a pretty common pattern.

If something is undefined, it should just be ignored as if the key would not be existing.
You also don't throw an error if I send a PUT request with undefined values, they just won't get touched. So why throwing errors here?

I have a lot of code like this, to make queries based on settings or relations, so e.g. if a user has branches referenced, we only show the branches he is referenced to, if not, we set the value to undefined and it will be ignored.

   const user = await strapi.query('user', 'users-permissions').findOne({ id: ctx.state.user.id }, ['branches']);
   const branches = user.branches.map(b => b.id);
    
   const query = {
      ...ctx.query,
      // if the user is referenced to branches, we restrict this by filter
      'id_in': branches.length > 0 ? branches : undefined,
    };

Now I have to filter undefined keys out of my query object to prevent that error.

If someone's application breaks because he receives errors it will only help, because it will show the application was broken and was giving 'false' results back 😉

No. Setting a key to undefined is mostly done by purpose and that undefined keys are ignored is a well-known standard pattern.
I would not say, the application is broken. If an application does care about undefined values (what Strapi is doing now), it is broken. 😉

Thanks for the updates. I'm currently wondering if we should categorize it as a bug fix or a breaking change as it will start throwing errors in place were it didn't previsouly.

Yes, it should have be categorized as breaking change. I have around 5 productive Strapi applications out there, which will break with this update.

@derrickmehaffy
Copy link
Member

derrickmehaffy commented Feb 5, 2021

well-known standard pattern

Can you provide some context to this because I have never seen this implemented in the examples.


Based on the code example provided it looks like this is some kind of security example where you are restricting users access to information based on their branch. In the case of security nothing should be undefined, you should know and expect all input/output.

Can you provide some other examples where you are using this so we can get a better understanding of what you are intending.


On that note I do understand from your perspective this could be a breaking change but we don't generally recommend that you filter based on undefined.

@Fensterbank
Copy link

hi @derrickmehaffy,
thanks for your reply.

well-known standard pattern

Can you provide some context to this because I have never seen this implemented in the examples.

I ment that undefined as value is ignored in most cases, but normally doesn't result in errors.

const data = {
  hello: 'world',
  foo: null,
  bar: undefined,
}
  • If we make a JSON.stringify(data), the property bar won't be part of the string, since it's undefined it will be removed.
  • If we send this in a PUT request to a REST API, we get this behavior: hello will be set to 'world', foo will be set to null, bar will ignored and is not touched at all.
  • If we pass our new data to e.g. strapi.query('foo').update(params, data), undefined values will be ignored, so we can savely do something like this:
    const item = await strapi.query('company').update(params, {
      ...data,
      contacts: contacts ? contacts.map(c => c.id) : undefined,
      opening_hours: opening_hours ? opening_hours.map(c => c.id) : undefined,
    });

So in our service if we have opening_hours i will pass the IDs and setup the relation, if not, I'll just pass undefined and expect that property won't be touched or any relations removed.
This is a pretty fine coding pattern and I don't have to write multiple lines with if-conditionals to create or not create that object key.
This is still working afaik, strapi won't throw an error here. So why should it throw an error if I have undefined values in a query object? 🤔


Based on the code example provided it looks like this is some kind of security example where you are restricting users access to information based on their branch. In the case of security nothing should be undefined, you should know and expect all input/output.

Can you provide some other examples where you are using this so we can get a better understanding of what you are intending.

  1. Users can be referenced to one or more branches. If they are referenced to branches, all data (e.g. customers) returned by the API will be restricted to these branches. If the user hasn't referenced branches, he is considered an administrator and has access to all customers and branches without any restrictions.
  getBranchRestrictedQuery: (givenBranchFilter, availableBranches) => {
    const hasFullAccess = availableBranches.length === 0;

    return {
      // if the user is referenced to branches, we restrict this by filter, but we should also respect filters given by the user
      'customer_branches.branch_in': givenBranchFilter && (hasFullAccess || availableBranches.includes(parseInt(givenBranchFilter)))
         ? givenBranchFilter
         : availableBranches.length > 0 ? availableBranches : undefined,
      'branches_in': undefined, // we did use ctx.query.branches_in to build that filter but here we overwrite it with undefined, since it's part of the line above.
    };
  },
  const user = await strapi.query('user', 'users-permissions').findOne({ id: ctx.state.user.id }, ['branches']);
  const branches = user.branches.map(b => b.id);

  const query = {
    id,
    ...getBranchRestrictedQuery(ctx.query.branches_in, branches),
  };
  1. Another project. We have several companies and other data which is referenced to a user. Normal users should only get entities created by them while administrators should get all entities. For this I built helper methods which returns a new query object with additional filters. For administrators user.id is just set to undefined so it should be ignored.
  /**
   * Modify the given query so that users with authenticated role only get items created by themselves.
   * Administrator role can be ignored by the last parameter.
   */
  restrict: (ctx, query, ignoreRole) => ({
    ...query,
    'user.id': ctx.state.user.role.type === 'administrator' || ignoreRole ? undefined : ctx.state.user.id,
  }),
  companyRestrict: (ctx, query, ignoreRole) => ({
    ...query,
    'company.user.id': ctx.state.user.role.type === 'administrator' || ignoreRole ? undefined : ctx.state.user.id,
  }),

I hope I gave you more insights on what I did and why this change is affecting my projects.
For me it was a pretty straightforward coding style and it doesn't felt wrong at all. 🤷‍♂️

Did I just misunderstand a core concept of strapi concerning query filtering and did things wrong? I can't believe I'm the only person, filtering returned entities like this. 😅

Have a nice weekend!

@benvp
Copy link

benvp commented Feb 7, 2021

I think the issue here is the combination of values. Given case 4 from the original post

await strapi.query('category').findOne({ undefinedUnknownField: undefined });

correctly returns a 400 because the params are not valid. What definitely shouldn't return a 400 is something like this:

await strapi.query('category').findOne({ id: 1, undefinedUnknownField: undefined });

because it is esentially the same as

await strapi.query('category').findOne({ id: 1 });

which obviously should work.

@violabg
Copy link

violabg commented Feb 23, 2021

this patch is causing me a lot of problem since I can't update past strapi 3.4.5.
I use some GraphQL connections in order to filter and group results by date.
To filter I use e filter panel where I have some optional filters

query GetEventsPerMonth(
  $startDate: Date
  $endDate: Date
  $cluster: [ID]
  $user: [ID]
  $eventTypes: [ID]
  $eventCategory: [ID]
  $sort: String
  $start: Int
  $limit: Int
) {
  tpEventsConnection(
    sort: $sort
    start: $start
    limit: $limit
    where: {
      _where: [
        { eventDateFrom_gte: $startDate, eventDateFrom_lte: $endDate }
        { cluster_in: $cluster }
        { eventCategory_in: $eventCategory }
        { user_in: $user }
        { eventTypes_in: $eventTypes }
      ]
    }
  ) {
    groupBy {
      eventDateFrom {
        key
        connection {
          values {
            id
            eventCategory {
              id
              label
            }
            businessAreas {
              id
              label
            }
            cluster {
              id
              label
              color
            }
            market
            eventLead
            eventName
            thematicFocusOfEvents {
              id
              label
            }
            leadFunction {
              id
              label
            }
            eventDateFrom
            eventDateTo
            location
            eventTypes {
              id
              label
            }
            themeOfEvent
            boothSize {
              id
              label
            }
            website
            organisersPublication
            speakerSecured
            dateAndTimeOfSpeakingSlot
            tetraPakSpeakerName
            titleAndTopic
            eventPageOnDotCom
            doYouHaveAnotherSpeakingOppty
            titleAndSpeaker
            user {
              id
              username
              firstName
              lastName
              color
            }
          }
        }
      }
    }
    aggregate {
      count
    }
  }
}

Now since the filter are optional they can be undefined at variables level, and unlike rest/api where I can avoid passing undefined parameters, in GraphQL I can't build the query at runtime.

@alexandrebodin
Copy link
Member

I think we are going to have to revert this even if the intention was good. just need to find another solution to avoid returning all the data if query with an undefined param. @MattieBelt I think we could throw an if the objects only contains undefined keys & otherwise just remove them. That would fix the issue without being a problem for everyone :)

@violabg
Copy link

violabg commented Feb 23, 2021

I think we are going to have to revert this even if the intention was good. just need to find another solution to avoid returning all the data if query with an undefined param. @MattieBelt I think we could throw an if the objects only contains undefined keys & otherwise just remove them. That would fix the issue without being a problem for everyone :)

thanks a lot

@violabg
Copy link

violabg commented Feb 23, 2021

I tried to implement a count resolver as per

https://strapi.io/documentation/developer-docs/latest/guides/count-graphql.html#setup-the-application

but I'm getting the same error I get with Connections, that complains about undefined filters.

So I went to my services to filter the undefined params:

module.exports = {
  count(params) {
    console.log("params", params);
    //     params I'm getting {
    //   eventDateFrom_gte: undefined,
    //   eventDateFrom_lte: undefined,
    //   cluster_in: undefined,
    //   eventCategory_in: [ '5' ],
    //   user_in: undefined,
    //   eventTypes_in: undefined
    // }

    const _where = [];

    const {
      eventDateFrom_gte,
      eventDateFrom_lte,
      cluster_in,
      eventCategory_in,
      user_in,
      eventTypes_in,
    } = params;

    const dates = {};

    if (cluster_in) {
      _where.push({ cluster_in });
    }
    if (eventCategory_in) {
      _where.push({ eventCategory_in });
    }
    if (cluster_in) {
      _where.push({ cluster_in });
    }
    if (user_in) {
      _where.push({ user_in });
    }
    if (eventTypes_in) {
      _where.push({ eventTypes_in });
    }
    if (eventDateFrom_gte) {
      dates.eventDateFrom_gte = eventDateFrom_gte;
    }
    if (eventDateFrom_lte) {
      dates.eventDateFrom_lte = eventDateFrom_lte;
    }

    const _dates = Object.keys(dates);

    if (_dates.length > 0) {
      _where.push(dates);
    }

    console.log("_where", _where);

    //     structure I need {
    //   _where: [
    //     { eventDateFrom_gte: undefined, eventDateFrom_lte: undefined },
    //     { cluster_in: undefined },
    //     { eventCategory_in: [Array] },
    //     { user_in: undefined },
    //     { eventTypes_in: undefined }
    //   ]
    // }

    return strapi.query("tp-event").count({ _where });
  },
};

is working but I wouldn't know how to do it for the groupBy case

@MattieBelt
Copy link
Collaborator Author

I think we are going to have to revert this even if the intention was good. just need to find another solution to avoid returning all the data if query with an undefined param. @MattieBelt

After reading the other use cases I do think reverting this is probably better. I don't think allowing filtering on an undefined value is a good thing, but an error seems not to be the solution. Maybe logging a warning is more suited, this way an 'unaware' developer like this use case will know about having a 'false' filter, but it will not limit someone who deliberately sets it to undefined.

I think we could throw an if the objects only contains undefined keys & otherwise just remove them. That would fix the issue without being a problem for everyone :)

This would also mean that if someone (maybe @Fensterbank) only had this:

   const query = {
      // if the user is referenced to branches, we restrict this by filter
      'id_in': branches.length > 0 ? branches : undefined,
    };

An error would be thrown, so checking if all keys are undefined would also not work. And removing the keys could give back a 'false' result.

@alexandrebodin
Copy link
Member

@MattieBelt would you be willing to do a PR to just replace the error with a warning ?

@MattieBelt
Copy link
Collaborator Author

@alexandrebodin, yes I can submit an PR to change it in the coming days.

MattieBelt added a commit to MattieBelt/strapi that referenced this pull request Mar 4, 2021
@MattieBelt MattieBelt deleted the fix/8201 branch March 4, 2021 22:03
chris-schra added a commit to meetever/strapi that referenced this pull request Apr 30, 2021
* add migration when i18n is disabled on a CT

* use dropTableIfExists

* Fix redirection issue when deleting an entry

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix create slug bug

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix redirection link

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix Pr feedback

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix tabs border radius

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Use similar dropdown indicator as in the CM

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix dropdown indicator

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix PR feedback

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Change tooltip in helper component

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Upgrade Buffet.js

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix version number hover css

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Change settings confirm modal type & change copy locale submit button label

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Update plugin name

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix loading information on error when adding a locale that already exists (strapi#9875)

* Show all locales in the listview content-available cell (strapi#9877)

* Remove permissions with invalid properties on startup

Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>

* fix missing published_at in getNonLocalizedFields Route

* Display error message on the frontend (on permission save validation error)

* fix error wording when join table name is too long (strapi#9880)

* Bump aws-sdk from 2.863.0 to 2.875.0 (strapi#9874)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.863.0 to 2.875.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.863.0...v2.875.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Change plugin i18n logo

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Move findPermissionsIdToRemove logic to a dedicated function

* [I18N] fix typo

* Fix margin in table checkbox (strapi#9883)

* [I18N] fix padding in locale dropdown (strapi#9884)

* Add border-radius to the list of locales in settings (strapi#9885)

* Add spacing at the bottom of the user profile page (strapi#9886)

* [I18N] fix typo (strapi#9887)

* Display locale code instead of name when name is not defined (strapi#9888)

* Fix bullet position in delete content for a locale modal (strapi#9889)

* Fix margin for cog in ListView dropdown (strapi#9890)

* Add search params to publish action

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Add padding

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix media label css

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix border radius in RBAC Editview

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix margin on cog (again) (strapi#9905)

* Fix centering issue on delete locale modale (strapi#9904)

* Change Profile page dom

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Regenerate menu after changing the default locale

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Update permissions after creating a modal

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix empty locale picker on listview (strapi#9906)

* Fix tests

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix PR feedback

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix hover state strapi link

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Only displayed allowed with rbac locales

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bumping buffet and fixing list radius (strapi#9911)

* Fix Pr feedback

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix localizations display

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Only display not used locales

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Rename hook

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump @babel/preset-env from 7.13.8 to 7.13.12 (strapi#9903)

Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.13.8 to 7.13.12.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.12/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react-redux from 7.2.2 to 7.2.3 (strapi#9902)

Bumps [react-redux](https://github.com/reduxjs/react-redux) from 7.2.2 to 7.2.3.
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](reduxjs/react-redux@v7.2.2...v7.2.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @testing-library/jest-dom from 5.11.9 to 5.11.10 (strapi#9901)

Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.11.9 to 5.11.10.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](testing-library/jest-dom@v5.11.9...v5.11.10)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react-tooltip from 4.2.15 to 4.2.17 (strapi#9899)

Bumps [react-tooltip](https://github.com/wwayne/react-tooltip) from 4.2.15 to 4.2.17.
- [Release notes](https://github.com/wwayne/react-tooltip/releases)
- [Changelog](https://github.com/wwayne/react-tooltip/blob/master/CHANGELOG.md)
- [Commits](ReactTooltip/react-tooltip@v4.2.15...v4.2.17)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix ctb menu upate

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fixes strapi#9897

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix css

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix role update when no conditions and redirect the user to hp in listview when response is 403

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix tooltip i18n

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Revert react-redux upgrade (strapi#9930)

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump sharp from 0.27.2 to 0.28.0 (strapi#9927)

Bumps [sharp](https://github.com/lovell/sharp) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/master/docs/changelog.md)
- [Commits](lovell/sharp@v0.27.2...v0.28.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix dropdown size for the user (strapi#9931)

* Mock buffet core

* Delete all entries in a locale when locale is deleted

* Fix locale picker

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump aws-sdk from 2.875.0 to 2.878.0 (strapi#9938)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.875.0 to 2.878.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.875.0...v2.878.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump webpack from 4.44.2 to 4.46.0 (strapi#9925)

Bumps [webpack](https://github.com/webpack/webpack) from 4.44.2 to 4.46.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v4.44.2...v4.46.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: cyril lopez <cyril.lpz@gmail.com>

* Bump koa-session from 6.1.0 to 6.2.0 (strapi#9936)

Bumps [koa-session](https://github.com/koajs/session) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/koajs/session/releases)
- [Changelog](https://github.com/koajs/session/blob/master/History.md)
- [Commits](koajs/session@6.1.0...6.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update bug report template with LTS version information (strapi#9935)

* handle localized media attr in CM et CTB

* refacto

* fix test

* Remove create permissions for i18n settings

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump mini-css-extract-plugin from 0.6.0 to 1.4.0 (strapi#9924)

Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.6.0 to 1.4.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](webpack-contrib/mini-css-extract-plugin@v0.6.0...v1.4.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix field migration not supposed to run

* Improve CM error management

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Ensure the LV always does not have an empty query

Signed-off-by: soupette <cyril.lpz@gmail.com>

* refacto

* Update content-types.js

* fix unit test

* Bump @babel/preset-react from 7.12.13 to 7.13.13 (strapi#9954)

Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.12.13 to 7.13.13.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.13/packages/babel-preset-react)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump swagger-ui-dist from 3.45.1 to 3.46.0 (strapi#9956)

Bumps [swagger-ui-dist](https://github.com/swagger-api/swagger-ui) from 3.45.1 to 3.46.0.
- [Release notes](https://github.com/swagger-api/swagger-ui/releases)
- [Commits](swagger-api/swagger-ui@v3.45.1...v3.46.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump snyk from 1.506.0 to 1.522.0 (strapi#9955)

Bumps [snyk](https://github.com/snyk/snyk) from 1.506.0 to 1.522.0.
- [Release notes](https://github.com/snyk/snyk/releases)
- [Changelog](https://github.com/snyk/snyk/blob/master/.releaserc)
- [Commits](snyk/cli@v1.506.0...v1.522.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump aws-sdk from 2.878.0 to 2.879.0 (strapi#9953)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.878.0 to 2.879.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.878.0...v2.879.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove some of the unnecessary distinct  (strapi#9538)

* Only add distinct if it's a join

* made both if the same

* moved repeated if to variable

* forgot an import

* too quick doing this between meetings...

* Renamed boolean constants and changed the the distinct logic, instead of being twice it's only needed to have once

* fixed if

* Fix PR feedback

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Upgrade react-redux

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Ensure unique fields are localized

Signed-off-by: soupette <cyril.lpz@gmail.com>

* UID is always localized in i18n

* Bump aws-sdk from 2.879.0 to 2.880.0 (strapi#9968)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.879.0 to 2.880.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.879.0...v2.880.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @fortawesome/free-brands-svg-icons from 5.15.2 to 5.15.3 (strapi#9964)

Bumps [@fortawesome/free-brands-svg-icons](https://github.com/FortAwesome/Font-Awesome) from 5.15.2 to 5.15.3.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](FortAwesome/Font-Awesome@5.15.2...5.15.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @testing-library/react from 11.2.5 to 11.2.6 (strapi#9967)

Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 11.2.5 to 11.2.6.
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/master/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v11.2.5...v11.2.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update content-types.js

* init

* Bump classnames from 2.2.6 to 2.3.1 (strapi#9965)

Bumps [classnames](https://github.com/JedWatson/classnames) from 2.2.6 to 2.3.1.
- [Release notes](https://github.com/JedWatson/classnames/releases)
- [Changelog](https://github.com/JedWatson/classnames/blob/master/HISTORY.md)
- [Commits](https://github.com/JedWatson/classnames/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cloudinary from 1.25.0 to 1.25.1 (strapi#9983)

Bumps [cloudinary](https://github.com/cloudinary/cloudinary_npm) from 1.25.0 to 1.25.1.
- [Release notes](https://github.com/cloudinary/cloudinary_npm/releases)
- [Changelog](https://github.com/cloudinary/cloudinary_npm/blob/master/CHANGELOG.md)
- [Commits](cloudinary/cloudinary_npm@1.25.0...1.25.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @fingerprintjs/fingerprintjs from 3.0.6 to 3.0.7 (strapi#9984)

Bumps [@fingerprintjs/fingerprintjs](https://github.com/fingerprintjs/fingerprintjs) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/fingerprintjs/fingerprintjs/releases)
- [Commits](fingerprintjs/fingerprintjs@v3.0.6...v3.0.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump codemirror from 5.59.4 to 5.60.0 (strapi#9981)

Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.59.4 to 5.60.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](codemirror/codemirror5@5.59.4...5.60.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Uid fields are localised in CM

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix undefined filter value error (strapi#8490) (strapi#9603)

* rename isLocalized to isLocalizedContentType

* Use objects instead of strings to declare queries & mutattions

* Bump semver from 7.3.4 to 7.3.5 (strapi#9989)

Bumps [semver](https://github.com/npm/node-semver) from 7.3.4 to 7.3.5.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](npm/node-semver@v7.3.4...v7.3.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump lodash from 4.17.20 to 4.17.21 (strapi#9990)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @sentry/node from 6.2.3 to 6.2.5 (strapi#9993)

Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 6.2.3 to 6.2.5.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@6.2.3...6.2.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 7.18.0 to 7.23.0 (strapi#9991)

Bumps [eslint](https://github.com/eslint/eslint) from 7.18.0 to 7.23.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](eslint/eslint@v7.18.0...v7.23.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Support extra _ root params

* Ellipsis on locale cell only

* Add tests & handle _or & _where

* use globalId for the typeName

* handle compo, dz and media migration when disabling i18n on a field

* Return sections based on role

* all return all actions in ee

* Fix sticky header and select the first locale for copy

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump is-docker from 2.1.1 to 2.2.0 (strapi#10003)

Bumps [is-docker](https://github.com/sindresorhus/is-docker) from 2.1.1 to 2.2.0.
- [Release notes](https://github.com/sindresorhus/is-docker/releases)
- [Commits](sindresorhus/is-docker@v2.1.1...v2.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix modal confirm border radius

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Fix jumpy app when no edition of a locale

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Remove unnecessary code

* refacto

* Bump formik from 2.2.5 to 2.2.6 (strapi#9992)

Bumps [formik](https://github.com/formium/formik) from 2.2.5 to 2.2.6.
- [Release notes](https://github.com/formium/formik/releases)
- [Commits](https://github.com/formium/formik/compare/formik@2.2.5...formik@2.2.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refacto

* Update naming & simplify filter

* Fix bulkDelete on entites that are not in default locale

* refacto

* Bump sharp from 0.28.0 to 0.28.1 (strapi#10013)

Bumps [sharp](https://github.com/lovell/sharp) from 0.28.0 to 0.28.1.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/master/docs/changelog.md)
- [Commits](lovell/sharp@v0.28.0...v0.28.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* add test _locale filter on /relations/ route

* use strapi service

* fix singletype put

* fix getNonLocalizedAttributes route for ST

* Bump eslint-plugin-react from 7.22.0 to 7.23.2 (strapi#10038)

Bumps [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) from 7.22.0 to 7.23.2.
- [Release notes](https://github.com/yannickcr/eslint-plugin-react/releases)
- [Changelog](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](jsx-eslint/eslint-plugin-react@v7.22.0...v7.23.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @babel/plugin-transform-runtime from 7.13.10 to 7.13.15 (strapi#10016)

Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.13.10 to 7.13.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.15/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Pass extra args in ctx.query for every mutation

* Bump @babel/plugin-proposal-async-generator-functions (strapi#10017)

Bumps [@babel/plugin-proposal-async-generator-functions](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-async-generator-functions) from 7.13.8 to 7.13.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.15/packages/babel-plugin-proposal-async-generator-functions)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Target shadowcrud mutations only

* Bump styled-components from 5.2.1 to 5.2.3

Bumps [styled-components](https://github.com/styled-components/styled-components) from 5.2.1 to 5.2.3.
- [Release notes](https://github.com/styled-components/styled-components/releases)
- [Changelog](https://github.com/styled-components/styled-components/blob/v5.2.3/CHANGELOG.md)
- [Commits](styled-components/styled-components@v5.2.1...v5.2.3)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump react-test-renderer from 17.0.1 to 17.0.2 (strapi#10047)

Bumps [react-test-renderer](https://github.com/facebook/react/tree/HEAD/packages/react-test-renderer) from 17.0.1 to 17.0.2.
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v17.0.2/packages/react-test-renderer)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump swagger-ui-dist from 3.46.0 to 3.47.1 (strapi#10055)

Bumps [swagger-ui-dist](https://github.com/swagger-api/swagger-ui) from 3.46.0 to 3.47.1.
- [Release notes](https://github.com/swagger-api/swagger-ui/releases)
- [Commits](swagger-api/swagger-ui@v3.46.0...v3.47.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @babel/preset-env from 7.13.12 to 7.13.15 (strapi#10015)

Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.13.12 to 7.13.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.15/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Upgrade buffet.js to 3.3.5

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump aws-sdk from 2.880.0 to 2.888.0 (strapi#10070)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.880.0 to 2.888.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.880.0...v2.888.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump markdown-it from 12.0.4 to 12.0.6 (strapi#10066)

Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 12.0.4 to 12.0.6.
- [Release notes](https://github.com/markdown-it/markdown-it/releases)
- [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md)
- [Commits](markdown-it/markdown-it@12.0.4...12.0.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update snapshots

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Make i18n preinstalled (strapi#10071)

* Enable i18n on media field when i18n is activated

Signed-off-by: soupette <cyril.lpz@gmail.com>

* Bump eslint from 7.23.0 to 7.24.0

Bumps [eslint](https://github.com/eslint/eslint) from 7.23.0 to 7.24.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](eslint/eslint@v7.23.0...v7.24.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Add an env var to set the init locale code on startup

* Fix typo

* Fix typo in spanish translation (strapi#10060)

* FIx Email Provider Readme. (strapi#9947)

The Shipper Email in the email templates tab may need to be changed for emails to send properly
Settings>Email Templates>Click on a template>Shipper Email

api.us.mailgun.net is not a valid endpoint it should be api.mailgun.net see https://documentation.mailgun.com/en/latest/api-intro.html

* improve english text (strapi#9858)

* Update missing fields (strapi#10022)

* Fixes private field of target relation being reset - strapi#9712 (strapi#9713)

Thank you for this improvement !

* Remove broken & useless typdef (strapi#10085)

* add plugins and providers to send event

* Fix graphql naming to use the same input namine convention as the plugin

* Add i18n telemetry

* Add clean stringify

* Bump is-docker from 2.2.0 to 2.2.1 (strapi#10087)

Bumps [is-docker](https://github.com/sindresorhus/is-docker) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/sindresorhus/is-docker/releases)
- [Commits](sindresorhus/is-docker@v2.2.0...v2.2.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* v3.6.0

* Bump codemirror from 5.60.0 to 5.61.0

Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.60.0 to 5.61.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](codemirror/codemirror5@5.60.0...5.61.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @sentry/node from 6.2.5 to 6.3.0 (strapi#10100)

Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 6.2.5 to 6.3.0.
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/master/CHANGELOG.md)
- [Commits](getsentry/sentry-javascript@6.2.5...6.3.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump aws-sdk from 2.888.0 to 2.890.0 (strapi#10101)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.888.0 to 2.890.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.888.0...v2.890.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump aws-sdk from 2.890.0 to 2.892.0 (strapi#10136)

Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.890.0 to 2.892.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](aws/aws-sdk-js@v2.890.0...v2.892.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pg from 8.5.1 to 8.6.0 (strapi#10113)

Bumps [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) from 8.5.1 to 8.6.0.
- [Release notes](https://github.com/brianc/node-postgres/releases)
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.6.0/packages/pg)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump chalk from 4.1.0 to 4.1.1 (strapi#10112)

Bumps [chalk](https://github.com/chalk/chalk) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](chalk/chalk@v4.1.0...v4.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @babel/runtime from 7.13.10 to 7.13.17 (strapi#10091)

Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.13.10 to 7.13.17.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.17/packages/babel-runtime)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @babel/core from 7.13.15 to 7.13.16 (strapi#10097)

Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.13.15 to 7.13.16.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.16/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [graphQL + mongo] Fix broken localizations query (strapi#10141)

* fix localizations resolver

* Revert "fix localizations resolver"

This reverts commit 31c92e6.

* fix localizations resolver by adding _id to populate option

* Fix strapi#10125 - Accept falsy values returned by controllers in GraphQL queries and mutations (strapi#10145)

* Fix strapi#10125 - accept falsy values returned by controllers

* Add test for falsy ctx.body on built graphql resolver

* Use test instead of it in unit tests

* Fix issue relation loosing extra options on ctb update Fixes strapi#3409 (strapi#10102)

* Fix typo in query error message (strapi#10116)

The possessive `its` doesn't have an apostrophe.

https://www.dictionary.com/e/its-vs-its/

* Fixed typo (strapi#10132)

* Updated Russian translate (strapi#10133)

* Add DKIM config example (strapi#9923)

* [RBAC] Ignore only non visible attributes instead of non configurable ones (strapi#10139)

* Ignore only non visible attributes instead of non configurable ones

* Update snapshots

* Refacto buildDeepAttributesCollection

* Fix issue with incorrect cli termination when using flags quickstart and no-run (strapi#10111)

On Windows, an empty return from the createQuickStartProject function caused the process termination to hang.
Added explicit process termination for this platform

* Remove cache key so the url is valid for cors policy (strapi#10148)

* Bump apollo-server-koa from 2.22.1 to 2.23.0 (strapi#10155)

Bumps [apollo-server-koa](https://github.com/apollographql/apollo-server/tree/HEAD/packages/apollo-server-koa) from 2.22.1 to 2.23.0.
- [Release notes](https://github.com/apollographql/apollo-server/releases)
- [Changelog](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apollographql/apollo-server/commits/apollo-server-koa@2.23.0/packages/apollo-server-koa)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump snyk from 1.551.0 to 1.566.0 (strapi#10153)

Bumps [snyk](https://github.com/snyk/snyk) from 1.551.0 to 1.566.0.
- [Release notes](https://github.com/snyk/snyk/releases)
- [Changelog](https://github.com/snyk/snyk/blob/master/.releaserc)
- [Commits](snyk/cli@v1.551.0...v1.566.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ioredis from 4.26.0 to 4.27.1 (strapi#10165)

Bumps [ioredis](https://github.com/luin/ioredis) from 4.26.0 to 4.27.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/luin/ioredis/blob/master/Changelog.md)
- [Commits](redis/ioredis@v4.26.0...v4.27.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @testing-library/jest-dom from 5.11.10 to 5.12.0 (strapi#10166)

Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.11.10 to 5.12.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](testing-library/jest-dom@v5.11.10...v5.12.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* confirm superAdminRole exists when syncing permissions

* Fix strapi#10172 (strapi#10173)

* Bump react-query from 3.8.3 to 3.13.12 (strapi#10154)

Bumps [react-query](https://github.com/tannerlinsley/react-query) from 3.8.3 to 3.13.12.
- [Release notes](https://github.com/tannerlinsley/react-query/releases)
- [Commits](TanStack/query@v3.8.3...v3.13.12)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update french translation to i18n plugin (strapi#10152)

Fixed a typo and harmonized according to the other plugins.

* v3.6.1

* Bump nodemailer from 6.5.0 to 6.6.0 (strapi#10191)

Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](nodemailer/nodemailer@v6.5.0...v6.6.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 7.24.0 to 7.25.0 (strapi#10188)

Bumps [eslint](https://github.com/eslint/eslint) from 7.24.0 to 7.25.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](eslint/eslint@v7.24.0...v7.25.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump react-tooltip from 4.2.17 to 4.2.18 (strapi#10192)

Bumps [react-tooltip](https://github.com/wwayne/react-tooltip) from 4.2.17 to 4.2.18.
- [Release notes](https://github.com/wwayne/react-tooltip/releases)
- [Changelog](https://github.com/wwayne/react-tooltip/blob/master/CHANGELOG.md)
- [Commits](ReactTooltip/react-tooltip@v4.2.17...v4.2.18)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
Co-authored-by: Pierre Noël <petersg83@gmail.com>
Co-authored-by: soupette <cyril.lpz@gmail.com>
Co-authored-by: Marvin Frachet <marvin.frachet@strapi.io>
Co-authored-by: Convly <jean-sebastien.herbaux@epitech.eu>
Co-authored-by: Pierre Noël <petersg83@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: DMehaffy <derrickmehaffy@gmail.com>
Co-authored-by: Alexandre Bodin <bodin.alex@gmail.com>
Co-authored-by: jonmol <46555944+jonmol@users.noreply.github.com>
Co-authored-by: Mattias van den Belt <mattias@taskhero.nl>
Co-authored-by: Josep Camps Miró <campsjos@gmail.com>
Co-authored-by: Cameron <github@strixdesigns.com>
Co-authored-by: innerdvations <ben@innerdvations.com>
Co-authored-by: Yehuda Kremer <yehudakremer@gmail.com>
Co-authored-by: Minjun Kim <public.velopert@gmail.com>
Co-authored-by: Mark Kaylor <mark.kaylor@strapi.io>
Co-authored-by: Guilherme Pacheco <guilherme.f.pacheco@gmail.com>
Co-authored-by: Tom Dyson <tom@torchbox.com>
Co-authored-by: Ilya Artamonov <ilya.sosidka@gmail.com>
Co-authored-by: SorinGFS <sorin.gfs@protonmail.com>
Co-authored-by: TheSeally <34841680+TheSeally@users.noreply.github.com>
Co-authored-by: Guillaume Douceron <guillaume.douceron@free.fr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
issue: enhancement Issue suggesting an enhancement to an existing feature source: core:strapi Source is core/strapi package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Passing any undefined parameter in query method findOne returns first record from collection
7 participants