1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-28 19:06:12 +01:00
Commit Graph

10076 Commits

Author SHA1 Message Date
Nuno Góis
fb94138c5c
chore: support full path schemas (#5723)
This backwards compatible change allows us to specify a schema `id`
(full path) which to me feels a bit better than specifying the schema
name as a string, since a literal string is prone to typos.

### Before

```ts
requestBody: createRequestSchema(
    'createResourceSchema',
),
responses: {
    ...getStandardResponses(400, 401, 403, 415),
    201: resourceCreatedResponseSchema(
        'resourceSchema',
    ),
},
```

### After

```ts
requestBody: createRequestSchema(
    createResourceSchema.$id,
),
responses: {
    ...getStandardResponses(400, 401, 403, 415),
    201: resourceCreatedResponseSchema(
        resourceSchema.$id,
    ),
},
```
2023-12-22 08:17:23 +00:00
Nnenna Ndukwe
c44601b33c
React Tutorial Improvements (#5657)
<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->

## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

We've made some first round updates to the React tutorial:

- making it more SEO-friendly with ordered lists, sequential language,
description of the JS library
- Switched over the demo app to point to an open source project:
[Cypress Real World
App](https://github.com/cypress-io/cypress-realworld-app)
- included best practice considerations for client-side development
- updated URL path to point to `/feature-flag-tutorials/react` for
simplification


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->

Would love feedback on if there's a need for more screenshots? Don't
want to be too screenshot-heavy though I imagine.
And need feedback on the descriptions of "Considerations for using
feature flags in react"
https://github.com/Unleash/unleash/compare/react-improvements?expand=1#diff-96d4956f49f80cd76489a72d4d88c2956ce9dcc695f66fe014ad1185e37cb589R21

Want to make sure that what I described makes sense or if it could use
some tweaking to convey the right message clearly.
2023-12-21 10:15:22 -06:00
Jaanus Sellin
d57e26b8ea
feat: feedback table (#5721) 2023-12-21 15:34:35 +02:00
andreas-unleash
12100b3912
fix: add padding to warning banner (#5720)
Closes #
[1-1830](https://linear.app/unleash/issue/1-1830/potential-conflict-warning-add-padding-8px)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:58:17 +02:00
andreas-unleash
f0c0504b31
fix: email link (#5719)
Fixes missing base url 

Relates to
#[1-1827](https://linear.app/unleash/issue/1-1827/email-link-to-revive-feature-is-wrong)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:51:15 +02:00
andreas-unleash
aea18d1ac4
fix: review status title color (#5716)
Closes #
[1-1825](https://linear.app/unleash/issue/1-1825/change-the-color-of-the-scheduled-and-pending-state-to-warningdark)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 14:38:33 +02:00
Mateusz Kwasniewski
029af91e9e
fix: is after undefined parsing (#5718) 2023-12-21 13:25:10 +01:00
Nuno Góis
efa691d120
chore: helper methods to extract user data from req (#5710)
With the recent changes it's common that we'll need both the id and
processed username from the auth user in the request, so this PR
provides some helper methods to simplify this.
2023-12-21 12:06:20 +00:00
Mateusz Kwasniewski
60d3768ab1
fix: copy last seen at from env (#5713) 2023-12-21 12:37:28 +01:00
Jaanus Sellin
3926ec6c51
feat: tracking feature buttons clicks (#5714) 2023-12-21 11:01:16 +02:00
Tymoteusz Czech
9b7981047d
Fix row selection on paginated pages (#5706) 2023-12-21 11:01:10 +02:00
David Leek
4e56d1d8d5
feat: implement column created_by_user_id in feature_tag (#5695)
## About the changes

Adds the new nullable column created_by_user_id to the data used by
feature-tag-store and feature-tag-service. Also updates openapi schemas.
2023-12-21 10:00:45 +01:00
andreas-unleash
e0f83347ab
fix: hide variant diff if no change in ChangeRequestOverview (#5715)
Closes #
[1-1813](https://linear.app/unleash/issue/1-1813/do-not-show-variants-table-in-change-request-when-no-variant-change)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-21 10:39:18 +02:00
Fredrik Strand Oseberg
3ab331dce7
feat: increase unleash width (#5707)
This PR adds two feature flags:
* One is to add some holiday cheer to the unleash logo
* The other allows us to increase the width of unleash if the screen
allows it

<img width="1837" alt="Skjermbilde 2023-12-20 kl 16 18 16"
src="https://github.com/Unleash/unleash/assets/16081982/a25ccfb0-fd99-470f-8583-3ba9ef9186f9">
2023-12-21 08:42:28 +01:00
renovate[bot]
8085fba16b
chore(deps): update dependency @codemirror/state to v6.3.3 (#5711)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@codemirror/state](https://togithub.com/codemirror/state) | [`6.3.2`
->
`6.3.3`](https://renovatebot.com/diffs/npm/@codemirror%2fstate/6.3.2/6.3.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@codemirror%2fstate/6.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@codemirror%2fstate/6.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@codemirror%2fstate/6.3.2/6.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codemirror%2fstate/6.3.2/6.3.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>codemirror/state (@&#8203;codemirror/state)</summary>

###
[`v6.3.3`](https://togithub.com/codemirror/state/blob/HEAD/CHANGELOG.md#633-2023-12-06)

[Compare
Source](https://togithub.com/codemirror/state/compare/6.3.2...6.3.3)

##### Bug fixes

Fix an issue where `Text.slice` and `Text.replace` could return objects
with incorrect `length` when the given `from`/`to` values were out of
range for the text.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 22:45:03 +00:00
renovate[bot]
4ab12f92c6
chore(deps): update dependency @babel/core to v7.23.6 (#5708)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@babel/core](https://babel.dev/docs/en/next/babel-core)
([source](https://togithub.com/babel/babel/tree/HEAD/packages/babel-core))
| [`7.23.3` ->
`7.23.6`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.23.3/7.23.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@babel%2fcore/7.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@babel%2fcore/7.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@babel%2fcore/7.23.3/7.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@babel%2fcore/7.23.3/7.23.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>babel/babel (@&#8203;babel/core)</summary>

###
[`v7.23.6`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7236-2023-12-11)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.23.5...v7.23.6)

##### 👓 Spec Compliance

-   `babel-generator`, `babel-parser`, `babel-types`
- [#&#8203;16154](https://togithub.com/babel/babel/pull/16154) Remove
`TSPropertySignature.initializer`
([@&#8203;fisker](https://togithub.com/fisker))
- `babel-helpers`, `babel-plugin-proposal-decorators`,
`babel-plugin-transform-class-properties`,
`babel-plugin-transform-class-static-block`,
`babel-plugin-transform-runtime`, `babel-preset-env`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`,
`babel-types`
- [#&#8203;16139](https://togithub.com/babel/babel/pull/16139) Apply
`toPropertyKey` on decorator context name
([@&#8203;JLHwung](https://togithub.com/JLHwung))

##### 🐛 Bug Fix

-   `babel-generator`
- [#&#8203;16166](https://togithub.com/babel/babel/pull/16166) fix:
Correctly indenting when `retainLines` is enabled
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-helpers`, `babel-plugin-proposal-explicit-resource-management`
- [#&#8203;16150](https://togithub.com/babel/babel/pull/16150) `using`:
Allow looking up `Symbol.dispose` on a function
([@&#8203;odinho](https://togithub.com/odinho))
- `babel-plugin-proposal-decorators`,
`babel-plugin-transform-class-properties`
- [#&#8203;16161](https://togithub.com/babel/babel/pull/16161) Ensure
the `[[@&#8203;@&#8203;toPrimitive]]` call of a decorated class member
key is invoked once ([@&#8203;JLHwung](https://togithub.com/JLHwung))
- [#&#8203;16148](https://togithub.com/babel/babel/pull/16148) Support
named evaluation for decorated anonymous class exp
([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-plugin-transform-for-of`, `babel-preset-env`
- [#&#8203;16011](https://togithub.com/babel/babel/pull/16011) fix: `for
of` with `iterableIsArray` and shadowing variable
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-helpers`, `babel-plugin-proposal-decorators`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
- [#&#8203;16144](https://togithub.com/babel/babel/pull/16144) Set
function name for decorated private non-field elements
([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-plugin-transform-typescript`
- [#&#8203;16137](https://togithub.com/babel/babel/pull/16137) Fix
references to enum values with merging
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 🔬 Output optimization

- `babel-helper-create-class-features-plugin`,
`babel-plugin-transform-class-properties`
- [#&#8203;16159](https://togithub.com/babel/babel/pull/16159) Reuse
computed key memoiser ([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-helpers`, `babel-plugin-proposal-decorators`
- [#&#8203;16160](https://togithub.com/babel/babel/pull/16160) Optimize
decorator helper size
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))

###
[`v7.23.5`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7235-2023-11-29)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.23.3...v7.23.5)

##### 👓 Spec Compliance

-   `babel-plugin-proposal-decorators`
- [#&#8203;16138](https://togithub.com/babel/babel/pull/16138) Class
binding is in TDZ during decorators initialization
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-helpers`, `babel-plugin-proposal-decorators`
- [#&#8203;16132](https://togithub.com/babel/babel/pull/16132) Allow
addInitializer in field decorator context
([@&#8203;JLHwung](https://togithub.com/JLHwung))

##### 🚀 New Feature

- [#&#8203;16023](https://togithub.com/babel/babel/pull/16023) Add
`@babel/eslint-plugin/no-undef` for accessor props
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 🐛 Bug Fix

-   `babel-traverse`, `babel-types`
- [#&#8203;16131](https://togithub.com/babel/babel/pull/16131) Do not
remove bindings when removing assignment expression path
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-plugin-transform-classes`
- [#&#8203;16135](https://togithub.com/babel/babel/pull/16135) Require
class properties transform when compiling class with private fields
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-generator`
- [#&#8203;16122](https://togithub.com/babel/babel/pull/16122) fix:
Missing parentheses after line break
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-helpers`
- [#&#8203;16130](https://togithub.com/babel/babel/pull/16130) Fix
helpers internal fns names conflict resolution
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
- `babel-helper-create-class-features-plugin`,
`babel-plugin-transform-class-properties`,
`babel-plugin-transform-typescript`
- [#&#8203;16123](https://togithub.com/babel/babel/pull/16123) Simplify
class fields injetion after `super()`
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
- `babel-generator`, `babel-plugin-transform-modules-commonjs`,
`babel-plugin-transform-parameters`,
`babel-plugin-transform-typescript`, `babel-traverse`
- [#&#8203;16110](https://togithub.com/babel/babel/pull/16110) fix:
Unexpected duplication of comments
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))

##### 🔬 Output optimization

-   `babel-helpers`
- [#&#8203;16129](https://togithub.com/babel/babel/pull/16129) Optimize
`decorator` helper size
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 18:18:19 +00:00
Fredrik Strand Oseberg
59a6ef46e8
fix: separate concerns for ConstraintAccordionList (#5701)
## Problem

The ConstraintAccordionList component was used in multiple places: 
* Playground
* Segment form
* StrategyExecution
* Change requests
* Create strategy
* Edit strategy

This is problematic because some of the views are just pure visual
representations, and other views allow you to interact with and edit the
constraints. This causes a situation where the visual representation
needs to be aware of the implementation details of editing and mutating
constraints. In addition the ConstraintAccordionList is not just a pure
rendering of the list, it also keeps internal state on when to show the
create button and optional headers. This is makes it hard to make
changes when stylings need to be subtly different across components.

## Solution

Taking on the full refactor for this is out of scope, but it's
unfortunate that the ConstraintAccordionList needs all this internal
state. For now I split out the list into it's own component called
ConstraintList. I gathered the functions needed for editing and mutating
the constraints in a reusable hook and isolated the version of the list
used in the new feature strategy edit / create components into it's own
component so that the changes in layout will not affect anything else.

Ideally we should try to move towards a future where the components
don't keep internal state like this but clear boundaries and purposes
for the use.
2023-12-20 15:36:23 +01:00
Tymoteusz Czech
6d0e32810c
fix: empty paginated table state (#5685)
Table placeholder should be visible if search query returns no data.
2023-12-20 14:11:21 +00:00
Jaanus Sellin
8e7e389d1d
fix: context updated event now does stores correct fields (#5705) 2023-12-20 15:57:17 +02:00
Mateusz Kwasniewski
f3ca4f0c54
chore: upgrading vite to newer version (#5703) 2023-12-20 14:48:18 +01:00
andreas-unleash
0f8a6661a8
Feat: allow rescheduling of failed scheduled cr (#5702)
Allows for rescheduling failed scheduled requests

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-20 15:19:23 +02:00
Jaanus Sellin
bb5b322475
fix: now project overview has skeleton instead of placeholders (#5696)
Removed `ref` dependency from `useLoading` hook, it was being overly
reactive and breaking skeleton.
2023-12-20 14:59:41 +02:00
Nuno Góis
1a79921a38
chore: incoming webhook events (#5693)
https://linear.app/unleash/issue/2-1748/create-new-incoming-webhook-events

Adds new events for write operations on incoming webhooks and their
tokens.
2023-12-20 11:48:25 +00:00
Gastón Fournier
218d5625fb
chore: unify build and build PRs workflow (#5570)
## About the changes
Our build and build_prs workflows are almost the same with some minor
details:

1. **Build** also builds the frontend, but **PR Build** does not by
specifying `--ignore-scripts`
1. **Build PR** uploads test results: Upload test report to build. We'll
ignore this when building on main
1. **Build PR** just builds the backend (reason why the build is much
faster: 50s vs ~5m). We have a workflow for building frontend PRs, we'd
be removing the build frontend from the build on main, but we're already
exercising that to upload to dockerhub:

![image](https://github.com/Unleash/unleash/assets/455064/36f5a892-24dc-4de2-91bd-8e3419757b0d)
 
These are the main differences:

![image](https://github.com/Unleash/unleash/assets/455064/837b1ea4-305d-4472-b903-aeed7f3f3e7f)

This PR unifies the two workflows into one
2023-12-20 11:44:49 +01:00
Mateusz Kwasniewski
7be0c55d39
fix: move paginated table into isolation context (#5694) 2023-12-20 10:47:22 +01:00
renovate[bot]
53eb1f6b92
chore(deps): update react-router monorepo to v6.20.1 (#5536)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-router](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router))
| [`6.16.0` ->
`6.20.1`](https://renovatebot.com/diffs/npm/react-router/6.16.0/6.20.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router/6.16.0/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router/6.16.0/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [react-router-dom](https://togithub.com/remix-run/react-router)
([source](https://togithub.com/remix-run/react-router/tree/HEAD/packages/react-router-dom))
| [`6.16.0` ->
`6.20.1`](https://renovatebot.com/diffs/npm/react-router-dom/6.16.0/6.20.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.16.0/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.16.0/6.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>remix-run/react-router (react-router)</summary>

###
[`v6.20.1`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6201)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.20.0...react-router@6.20.1)

##### Patch Changes

- Revert the `useResolvedPath` fix for splat routes due to a large
number of applications that were relying on the buggy behavior (see
[https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329](https://togithub.com/remix-run/react-router/issues/11052#issuecomment-1836589329)).
We plan to re-introduce this fix behind a future flag in the next minor
version.
([#&#8203;11078](https://togithub.com/remix-run/react-router/pull/11078))
-   Updated dependencies:
    -   `@remix-run/router@1.13.1`

###
[`v6.20.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6200)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.19.0...react-router@6.20.0)

##### Minor Changes

- Export the `PathParam` type from the public API
([#&#8203;10719](https://togithub.com/remix-run/react-router/pull/10719))

##### Patch Changes

- Fix bug with `resolveTo` in splat routes
([#&#8203;11045](https://togithub.com/remix-run/react-router/pull/11045))
- This is a follow up to
[#&#8203;10983](https://togithub.com/remix-run/react-router/pull/10983)
to handle the few other code paths using `getPathContributingMatches`
- This removes the `UNSAFE_getPathContributingMatches` export from
`@remix-run/router` since we no longer need this in the
`react-router`/`react-router-dom` layers
-   Updated dependencies:
    -   `@remix-run/router@1.13.0`

###
[`v6.19.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6190)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.18.0...react-router@6.19.0)

##### Minor Changes

- Add `unstable_flushSync` option to
`useNavigate`/`useSumbit`/`fetcher.load`/`fetcher.submit` to opt-out of
`React.startTransition` and into `ReactDOM.flushSync` for state updates
([#&#8203;11005](https://togithub.com/remix-run/react-router/pull/11005))
- Remove the `unstable_` prefix from the
[`useBlocker`](https://reactrouter.com/en/main/hooks/use-blocker) hook
as it's been in use for enough time that we are confident in the API. We
do not plan to remove the prefix from `unstable_usePrompt` due to
differences in how browsers handle `window.confirm` that prevent React
Router from guaranteeing consistent/correct behavior.
([#&#8203;10991](https://togithub.com/remix-run/react-router/pull/10991))

##### Patch Changes

- Fix `useActionData` so it returns proper contextual action data and
not *any* action data in the tree
([#&#8203;11023](https://togithub.com/remix-run/react-router/pull/11023))

- Fix bug in `useResolvedPath` that would cause `useResolvedPath(".")`
in a splat route to lose the splat portion of the URL path.
([#&#8203;10983](https://togithub.com/remix-run/react-router/pull/10983))

- ⚠️ This fixes a quite long-standing bug specifically for `"."` paths
inside a splat route which incorrectly dropped the splat portion of the
URL. If you are relative routing via `"."` inside a splat route in your
application you should double check that your logic is not relying on
this buggy behavior and update accordingly.

-   Updated dependencies:
    -   `@remix-run/router@1.12.0`

###
[`v6.18.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6180)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.17.0...react-router@6.18.0)

##### Patch Changes

- Fix the `future` prop on `BrowserRouter`, `HashRouter` and
`MemoryRouter` so that it accepts a `Partial<FutureConfig>` instead of
requiring all flags to be included.
([#&#8203;10962](https://togithub.com/remix-run/react-router/pull/10962))
-   Updated dependencies:
    -   `@remix-run/router@1.11.0`

###
[`v6.17.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router/CHANGELOG.md#6170)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router@6.16.0...react-router@6.17.0)

##### Patch Changes

- Fix `RouterProvider` `future` prop type to be a
`Partial<FutureConfig>` so that not all flags must be specified
([#&#8203;10900](https://togithub.com/remix-run/react-router/pull/10900))
-   Updated dependencies:
    -   `@remix-run/router@1.10.0`

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

###
[`v6.20.1`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6201)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.20.0...react-router-dom@6.20.1)

##### Patch Changes

- Revert the `useResolvedPath` fix for splat routes due to a large
number of applications that were relying on the buggy behavior (see
[https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329](https://togithub.com/remix-run/react-router/issues/11052#issuecomment-1836589329)).
We plan to re-introduce this fix behind a future flag in the next minor
version.
([#&#8203;11078](https://togithub.com/remix-run/react-router/pull/11078))
-   Updated dependencies:
    -   `react-router@6.20.1`
    -   `@remix-run/router@1.13.1`

###
[`v6.20.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6200)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.19.0...react-router-dom@6.20.0)

##### Minor Changes

- Export the `PathParam` type from the public API
([#&#8203;10719](https://togithub.com/remix-run/react-router/pull/10719))

##### Patch Changes

-   Updated dependencies:
    -   `react-router@6.20.0`
    -   `@remix-run/router@1.13.0`

###
[`v6.19.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6190)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.18.0...react-router-dom@6.19.0)

##### Minor Changes

- Add `unstable_flushSync` option to
`useNavigate`/`useSumbit`/`fetcher.load`/`fetcher.submit` to opt-out of
`React.startTransition` and into `ReactDOM.flushSync` for state updates
([#&#8203;11005](https://togithub.com/remix-run/react-router/pull/11005))
- Allow `unstable_usePrompt` to accept a `BlockerFunction` in addition
to a `boolean`
([#&#8203;10991](https://togithub.com/remix-run/react-router/pull/10991))

##### Patch Changes

- Fix issue where a changing fetcher `key` in a `useFetcher` that
remains mounted wasn't getting picked up
([#&#8203;11009](https://togithub.com/remix-run/react-router/pull/11009))
- Fix `useFormAction` which was incorrectly inheriting the `?index`
query param from child route `action` submissions
([#&#8203;11025](https://togithub.com/remix-run/react-router/pull/11025))
- Fix `NavLink` `active` logic when `to` location has a trailing slash
([#&#8203;10734](https://togithub.com/remix-run/react-router/pull/10734))
-   Updated dependencies:
    -   `react-router@6.19.0`
    -   `@remix-run/router@1.12.0`

###
[`v6.18.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6180)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.17.0...react-router-dom@6.18.0)

##### Minor Changes

- Add support for manual fetcher key specification via `useFetcher({
key: string })` so you can access the same fetcher instance from
different components in your application without prop-drilling
([RFC](https://togithub.com/remix-run/remix/discussions/7698))
([#&#8203;10960](https://togithub.com/remix-run/react-router/pull/10960))

- Fetcher keys are now also exposed on the fetchers returned from
`useFetchers` so that they can be looked up by `key`

- Add `navigate`/`fetcherKey` params/props to `useSumbit`/`Form` to
support kicking off a fetcher submission under the hood with an
optionally user-specified `key`
([#&#8203;10960](https://togithub.com/remix-run/react-router/pull/10960))

    -   Invoking a fetcher in this way is ephemeral and stateless
- If you need to access the state of one of these fetchers, you will
need to leverage `useFetcher({ key })` to look it up elsewhere

##### Patch Changes

- Adds a fetcher context to `RouterProvider` that holds completed
fetcher data, in preparation for the upcoming future flag that will
change the fetcher persistence/cleanup behavior
([#&#8203;10961](https://togithub.com/remix-run/react-router/pull/10961))
- Fix the `future` prop on `BrowserRouter`, `HashRouter` and
`MemoryRouter` so that it accepts a `Partial<FutureConfig>` instead of
requiring all flags to be included.
([#&#8203;10962](https://togithub.com/remix-run/react-router/pull/10962))
-   Updated dependencies:
    -   `@remix-run/router@1.11.0`
    -   `react-router@6.18.0`

###
[`v6.17.0`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6170)

[Compare
Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.16.0...react-router-dom@6.17.0)

##### Minor Changes

- Add experimental support for the [View Transitions
API](https://developer.mozilla.org/en-US/docs/Web/API/ViewTransition)
via `document.startViewTransition` to enable CSS animated transitions on
SPA navigations in your application.
([#&#8203;10916](https://togithub.com/remix-run/react-router/pull/10916))

The simplest approach to enabling a View Transition in your React Router
app is via the new `<Link unstable_viewTransition>` prop. This will
cause the navigation DOM update to be wrapped in
`document.startViewTransition` which will enable transitions for the DOM
update. Without any additional CSS styles, you'll get a basic cross-fade
animation for your page.

If you need to apply more fine-grained styles for your animations, you
can leverage the `unstable_useViewTransitionState` hook which will tell
you when a transition is in progress and you can use that to apply
classes or styles:

    ```jsx
    function ImageLink(to, src, alt) {
      let isTransitioning = unstable_useViewTransitionState(to);
      return (
        <Link to={to} unstable_viewTransition>
          <img
            src={src}
            alt={alt}
            style={{
              viewTransitionName: isTransitioning ? "image-expand" : "",
            }}
          />
        </Link>
      );
    }
    ```

You can also use the `<NavLink unstable_viewTransition>` shorthand which
will manage the hook usage for you and automatically add a
`transitioning` class to the `<a>` during the transition:

    ```css
    a.transitioning img {
      view-transition-name: "image-expand";
    }
    ```

    ```jsx
    <NavLink to={to} unstable_viewTransition>
      <img src={src} alt={alt} />
    </NavLink>
    ```

For an example usage of View Transitions with React Router, check out
[our fork](https://togithub.com/brophdawg11/react-router-records) of the
[Astro Records](https://togithub.com/Charca/astro-records) demo.

For more information on using the View Transitions API, please refer to
the [Smooth and simple transitions with the View Transitions
API](https://developer.chrome.com/docs/web-platform/view-transitions/)
guide from the Google Chrome team.

Please note, that because the `ViewTransition` API is a DOM API, we now
export a specific `RouterProvider` from `react-router-dom` with this
functionality. If you are importing `RouterProvider` from
`react-router`, then it will not support view transitions.
([#&#8203;10928](https://togithub.com/remix-run/react-router/pull/10928)

##### Patch Changes

- Log a warning and fail gracefully in `ScrollRestoration` when
`sessionStorage` is unavailable
([#&#8203;10848](https://togithub.com/remix-run/react-router/pull/10848))
-   Updated dependencies:
    -   `@remix-run/router@1.10.0`
    -   `react-router@6.17.0`

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 10:10:10 +01:00
Fredrik Strand Oseberg
5a263ee35c
Feat/new strategy configuration tests (#5692)
Does what it says
2023-12-20 09:16:45 +01:00
Thomas Heartman
a9bf831759
Update publish-new-version.yaml (#5691)
Add more details about the how the version should be formatted. 

When trying to run this workflow, I'm always very unsure whether the
version should be prepended with a `v` or not. This should be clearly
stated in the description. If it doesn't matter, that should also be
stated explicitly.

Updated the texts after talking to @chriswk and making a release.
2023-12-20 08:15:22 +01:00
Ivar Conradi Østhus
637b1b05e0
docs: Validate vercel.docs and build 2023-12-19 20:16:14 +01:00
Jaanus Sellin
c979e687ca
fix: remove extra call to features on project load (#5690)
Currently EnableEnvironmentDialog was loaded even if no feature was
touched. Now it will only load, if feature toggle was selected.
2023-12-19 21:03:24 +02:00
Tymoteusz Czech
dce91b0e90
fix: pagination and column width 2023-12-19 16:24:43 +01:00
Mateusz Kwasniewski
8306073e1f
feat: keep filter order (#5688) 2023-12-19 15:35:39 +01:00
andreas-unleash
b933a03e8a
fix: conflict email naming bug - cleanup files (#5683)
Fixes name bug in template folder
Removes/cleans up the plain html files

Relates to #
[1-1605](https://linear.app/unleash/issue/1-1605/send-an-email-to-the-user-whose-scheduled-changes-can-no-longer-be)

Closes #
[1-1726](https://linear.app/unleash/issue/1-1726/manual-testing)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-19 16:01:16 +02:00
Nuno Góis
c0bc2d9b68
fix: prevent banner from crashing with invalid variant (#5686)
https://linear.app/unleash/issue/2-1760/prevent-banner-from-crashing-when-set-with-an-invalid-variant

This prevents the banner from crashing when set with an invalid variant.
Instead, it default its styles to the default variant, which is `info`.

Also adds tests to validate our assumptions.
2023-12-19 13:09:40 +00:00
Tymoteusz Czech
8388700f76
fix: project features batch actions refetch (#5680)
Reload paginated features on project overview after batch action.
2023-12-19 14:46:06 +02:00
Jaanus Sellin
42943ada75
fix: now history is only shown to search bars that have id to save hi… (#5684) 2023-12-19 14:20:10 +02:00
David Leek
33f82daa8c
chore: add migration that renames new created_by columns (#5681)
## About the changes

Replaces #5616

Renamed newly added `created_by` columns to `created_by_user_id` for
these tables:
features
feature_tag
feature_strategies
feature_types
role_permission
role_user
roles
users
api_tokens
2023-12-19 13:14:15 +01:00
Gastón Fournier
061bd7ef32
chore: use semver compatible version (#5678)
## About the changes
Replicate the change made to respect semver
2023-12-19 12:47:03 +01:00
Jaanus Sellin
8e09f08a05
feat: rebrand feature toggle list as search (#5675) 2023-12-19 13:42:14 +02:00
David Leek
5603e8683d
chore: list users and groups under each role in projectaccessadded event (#5581)
## About the changes

Changes the project access added event to list all users and groups
added to each role instead of in root event.
2023-12-19 10:16:17 +01:00
Mateusz Kwasniewski
7800d9d1b4
feat: export all features in project (#5677) 2023-12-19 08:57:10 +01:00
Ivar Conradi Østhus
1043efd89f
fix: use node v18.19.0 (#5662) 2023-12-18 19:57:24 +01:00
Nuno Góis
138d303da4
chore: rename secret to token in incoming_webhook_tokens (#5679)
Renames `secret` to `token` in `incoming_webhook_tokens` for
consistency. This table is not being used yet, so this should be a very
safe change.
2023-12-18 17:11:59 +00:00
Tymoteusz Czech
b2c31a3bd3
fix: column visibility (#5676)
- always show favorites and selection
- reset local storage columns cache
2023-12-18 16:24:39 +01:00
Ivar Conradi Østhus
9e95a6547e
docs: add vercel.json 2023-12-18 15:34:25 +01:00
Nuno Góis
5f975bbad7
chore: incoming webhooks and tokens migration (#5670)
https://linear.app/unleash/issue/2-1699/db-create-migration-for-a-new-incoming-webhooks-table

Adds a migration that creates 2 tables:
 - `incoming_webhooks`
 - `incoming_webhook_tokens`
2023-12-18 13:22:28 +00:00
Mateusz Kwasniewski
e380d28924
feat: up and down arrow navigation for filter items (#5673) 2023-12-18 14:13:32 +01:00
andreas-unleash
75bdd73c15
feat: add plausible tracking to scheduling (#5668)
Adds plausible tracking with actions:
- scheduled-created
- scheduled-updated
- scheduled-rejected
- scheduled-applied

Closes #
[1-1630](https://linear.app/unleash/issue/1-1630/add-plausible-metrics)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-18 15:06:58 +02:00
Paulo Miranda
fd34f35e0e
feat: add reset password to user manager (#5580)
## About the changes
This PR adds a reset password functionality to user table (only available to admins). This makes it possible to reset passwords without configuring the email service.

![Screenshot from 2023-12-10
20-41-22](https://github.com/Unleash/unleash/assets/32435715/0209525a-4f3a-4998-b9de-7299469e1a68)

![Screenshot from 2023-12-16
16-40-36](https://github.com/Unleash/unleash/assets/32435715/556e324c-c0b0-4bb9-b2b5-3bd653f4d329)

![Screenshot from 2023-12-16
16-40-48](https://github.com/Unleash/unleash/assets/32435715/b0249e9d-9e1a-4cfe-a5ee-0ab22f45ce28)

---------

Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Thomas Heartman <thomasheartman+github@gmail.com>
2023-12-18 13:54:04 +01:00
Mateusz Kwasniewski
c5b3058890
fix: date filter item missing key (#5674) 2023-12-18 13:51:27 +01:00