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

10524 Commits

Author SHA1 Message Date
Christopher Kolstad
8256c2eaf2
task: Use fine-grained project permissions in frontend (#5974)
Connected to [#5932](https://github.com/Unleash/unleash/pull/5932) -
This starts using the new permissions in addition to the old
UPDATE_PROJECT permission. That way, if you're happy with
UPDATE_PROJECT, you don't need to change.

However, you can now add more fine grained permissions for both READ and
WRITE operations.
2024-01-22 15:34:10 +01:00
Tymoteusz Czech
b7483e8989
chore: generate frontend openapi types (#5988)
Update for dashboard types
2024-01-22 14:16:07 +01:00
Thomas Heartman
fd91cd1771
fix: don't use kebab-case for properties (#5979)
These are apparently unsupported in css objects and using the camelCased (or PascalCased) versions was the suggested fix.
2024-01-22 12:26:25 +00:00
Fredrik Strand Oseberg
60d2176efa
feat: add option to use variants with feedback (#5986)
This PR will allow us to use a feature flag with variants to control
whether or not we should show the comments field of the feedback form.
This will allow us to see whether we can increase feedback collection if
we reduce the load on the customer.
2024-01-22 13:14:27 +01:00
Gastón Fournier
c5afa8ff11
fix: unauthorized disable feature (#5982)
## About the changes
This was spotted while testing automated actions. Steps to reproduce:

1. Add an editor user
2. Get a PAT for the editor user
3. As Admin create a feature in a project where the editor user is not a
member and enable the feature
4. Try using the editor's PAT to modify the feature
5. As the editor create a project (you'd be made owner) and try the same
request but just change the project name for the new project just
created (don't change anything else)

**Expected behavior**: you can't disable the feature
**Actual behavior**: the feature is disabled

This does not happen when trying to turn on a flag because during the
turn-on process we do validate if the feature belongs to project when we
call updateStrategy:
c18a7c0dc2/src/lib/features/feature-toggle/feature-toggle-service.ts (L1751-L1764)
2024-01-22 12:50:14 +01:00
Mateusz Kwasniewski
055bab8e7c
feat: include number of flags chart (#5987) 2024-01-22 12:15:49 +01:00
Gastón Fournier
8ba5cdced1
feat: add action states (#5983)
## About the changes
Add action states table without an index yet
2024-01-22 11:49:35 +01:00
Mateusz Kwasniewski
c9b99f41cf
feat: number of flags component (#5984) 2024-01-22 11:47:15 +01:00
Thomas Heartman
312a40ce1c
refactor: prefer 'span' to 'div' in the badge element (#5981)
This changes the badge element to prefer spans instead of divs. The
primary difference between spans and divs is that spans are inline and
divs are block. Styling-wise, we override the display property anyway.
Semantically, most all of the badges are used inline instead of on
their own block level, so this change seems sensible. You can still
provide `div` as the `as` prop if you need to.
2024-01-22 14:44:26 +04:00
Tymoteusz Czech
ec1439e171
Feat: dashboard users chart frontend (#5980)
Users chart with tooltip and legend
2024-01-22 11:07:38 +01:00
Thomas Heartman
edf3cad092
fix: add keys to the features cell component (#5978)
This PR adds the `key` property to the features cell component where it
renders lists of flags. This fixes a few rendering errors we've been
getting in the console.
2024-01-22 07:57:38 +00:00
Thomas Heartman
f7c8180145
Chore: omit snapshot property from event payload (#5972)
This PR hides the "snapshot" data from the diff overview we show in the
UI in a change request.
2024-01-22 11:13:49 +04:00
Thomas Heartman
0bb709a718
feat: show changes that would be overwritten in change request overview UI (#5964)
This PR adds a first, rough iteration of what it could look like to show
changes that would be overwritten by applying a PR.

The changes are listed in a table (semantically; looks more like a list
visually) and show the property, the current live value and the version
that you have in your changes. The changes are hidden by default, but
can be shown by expanding a details element.

@nicolaesocaciu Suggested that we merge this version for now and iterate
on the design later.

Here's what it looks like closed:

![image](https://github.com/Unleash/unleash/assets/17786332/3a641642-0537-4e7a-aeca-b3d3df6b8e31)

Here's what it looks like with a typical change load:

![image](https://github.com/Unleash/unleash/assets/17786332/b7aa7265-d1c7-4b6b-a9a2-f58cb966f25c)


Here's what it looks like if you change more or less every property
changed:

![image](https://github.com/Unleash/unleash/assets/17786332/4d94ab69-86ed-4c3e-be6a-6890c654e37e)
2024-01-22 11:13:38 +04:00
renovate[bot]
8f4780c52f
chore(deps): update dependency vite to v5.0.12 [security] (#5977)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.0.11` ->
`5.0.12`](https://renovatebot.com/diffs/npm/vite/5.0.11/5.0.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.0.11/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.0.11/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[CVE-2024-23331](https://togithub.com/vitejs/vite/security/advisories/GHSA-c24v-8rfc-w8vw)

### Summary
[Vite dev server
option](https://vitejs.dev/config/server-options.html#server-fs-deny)
`server.fs.deny` can be bypassed on case-insensitive file systems using
case-augmented versions of filenames. Notably this affects servers
hosted on Windows.

This bypass is similar to
https://nvd.nist.gov/vuln/detail/CVE-2023-34092 -- with surface area
reduced to hosts having case-insensitive filesystems.

### Patches
Fixed in vite@5.0.12, vite@4.5.2, vite@3.2.8, vite@2.9.17

### Details
Since `picomatch` defaults to case-sensitive glob matching, but the file
server doesn't discriminate; a blacklist bypass is possible.

See `picomatch` usage, where `nocase` is defaulted to `false`:
https://github.com/vitejs/vite/blob/v5.1.0-beta.1/packages/vite/src/node/server/index.ts#L632

By requesting raw filesystem paths using augmented casing, the matcher
derived from `config.server.fs.deny` fails to block access to sensitive
files.

### PoC
**Setup**
1. Created vanilla Vite project using `npm create vite@latest` on a
Standard Azure hosted Windows 10 instance.
    - `npm run dev -- --host 0.0.0.0`
- Publicly accessible for the time being here: http://20.12.242.81:5173/
2. Created dummy secret files, e.g. `custom.secret` and `production.pem`
3. Populated `vite.config.js` with
```javascript
export default { server: { fs: { deny: ['.env', '.env.*', '*.{crt,pem}', 'custom.secret'] } } }
```

**Reproduction**
1. `curl -s http://20.12.242.81:5173/@​fs//`
- Descriptive error page reveals absolute filesystem path to project
root
2. `curl -s
http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/vite.config.js`
    - Discoverable configuration file reveals locations of secrets
3. `curl -s
http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/custom.sEcReT`
- Secrets are directly accessible using case-augmented version of
filename

**Proof**
![Screenshot 2024-01-19
022736](https://user-images.githubusercontent.com/907968/298020728-3a8d3c06-fcfd-4009-9182-e842f66a6ea5.png)

### Impact
**Who**
- Users with exposed dev servers on environments with case-insensitive
filesystems

**What**
- Files protected by `server.fs.deny` are both discoverable, and
accessible

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

### [`v5.0.12`](https://togithub.com/vitejs/vite/releases/tag/v5.0.12)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.11...v5.0.12)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v5.0.12/packages/vite/CHANGELOG.md)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 01:38:23 +00:00
Thomas Heartman
01a38becb3
fix: handle title diffing correctly in strategy change diffs (#5971)
A strategy title can be either an empty string or undefined on the
type we use in the frontend. In the snapshot it can be an empty
string, null (presumably), and undefined.

This change updates the diffing logic to handle the various title diff
cases correctly. It also updates the type used for the snapshot to
reflect this.
2024-01-19 18:56:46 +04:00
Nuno Góis
5253482f61
refactor: add typesafe wrappers for prom client metrics (#5969)
https://linear.app/unleash/issue/2-1856/add-typesafe-wrappers-over-prom-clients-metrics

As discussed on the latest knowledge sharing session, this adds typesafe
wrappers over prom client's metrics, requiring us to specify all the
configured labels for each metric.

This uses a functional approach and only exposes the methods that are
currently relevant to us, while also exposing the underlying instance of
the metric for an easy access if needed.

Since we often chain `labels` with `inc` in counters, this adds a
convenience `increment` method for counters which does both in a single
call.
2024-01-19 14:51:29 +00:00
Nuno Góis
77fcc9e840
fix: incoming webhooks form UI adjustments (#5973)
Small UI improvements in the new incoming webhooks form after aligning
with @nicolaesocaciu.


![image](https://github.com/Unleash/unleash/assets/14320932/6f829863-ab94-4d35-a1d7-d8722e8ec159)
2024-01-19 14:50:54 +00:00
Nicolae Socaciu
7b30ab09d2
Fix email template scheduled change conflict (#5957)
Fixing the mobile template (this is before the fix)
- reducing padding around the content
- fixing line-height for the content
- fixing the footer links  

![image](https://github.com/Unleash/unleash/assets/103567375/dbe88f5a-a798-4fd4-ab42-543689605043)
2024-01-19 14:57:00 +02:00
andreas-unleash
dda0fd3fd4
Fix: losing redirect on provider login (#5970)
Fixes the initial redirect to take into account the value from session
storage

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 14:31:42 +02:00
Mateusz Kwasniewski
84e341bbb7
feat: show select all button when more than 1 item (#5965) 2024-01-19 11:26:03 +01:00
andreas-unleash
a096b2a485
fix: store redirect to localStorage to avoid loss of redirect (#5929)
Stores `redirect` param in localStorage in the Authentication component.
Retrieves the `redirect` param from localStorage at the Login screen if
it is not there in the url.

This will solve losing the redirect information all provider logins

Closes #
[1-1890](https://linear.app/unleash/issue/1-1890/capture-path-before-logging-in-and-redirect-to-it-if-there-and-custom)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-19 11:32:26 +02:00
Fredrik Strand Oseberg
4ee2acb3aa
fix: add more comprehensive metrics for feedback (#5967)
Add more comprehensive tracking of feedback
2024-01-19 10:23:40 +01:00
Thomas Heartman
c69137a1ee
feat: add algorithm to detect what strategy changes would be overwritten by applying a CR (#5963)
This change adds an algorithm with tests for detecting what changes
would be overwritten by applying a CR.

Test cases:
- It compares strategies regardless of order of keys in the objects.
This ensures that two strategies with the same content but different
order of keys are compared correctly.
- It treats `undefined` or missing segments in old config as equal to
`[]` in change
- It treats `undefined` or missing strategy variants in old config and
change as equal to `[]`
- It lists changes in a sorted list with the correct values
- It ignores object order on nested objects. Similar to the first
point, this does order-insensitive comparison for nested objects (such
as params and constraints).
2024-01-19 13:08:08 +04:00
Mateusz Kwasniewski
b00909db3f
test: show array param decoder (#5955) 2024-01-19 09:27:47 +01:00
Mateusz Kwasniewski
22037cb0f2
fix: normalize hours back to prevent freezing UI (#5953) 2024-01-19 09:27:31 +01:00
renovate[bot]
277e3e0afd
chore(deps): update react-router monorepo to v6.21.2 (#5961)
[![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.21.1` ->
`6.21.2`](https://renovatebot.com/diffs/npm/react-router/6.21.1/6.21.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router/6.21.1/6.21.2?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.21.1` ->
`6.21.2`](https://renovatebot.com/diffs/npm/react-router-dom/6.21.1/6.21.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.21.1/6.21.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v6.21.2`](https://togithub.com/remix-run/react-router/compare/react-router@6.21.1...react-router@6.21.2)

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

</details>

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

###
[`v6.21.2`](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.21.1...react-router-dom@6.21.2)

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

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 21:18:26 +00:00
renovate[bot]
bf65861640
chore(deps): update dependency @tanstack/react-table to v8.11.4 (#5958)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>tanstack/table (@&#8203;tanstack/react-table)</summary>

###
[`v8.11.4`](https://togithub.com/TanStack/table/releases/tag/v8.11.4)

[Compare
Source](https://togithub.com/tanstack/table/compare/v8.11.3...v8.11.4)

Version 8.11.4 - 1/11/2024, 5:30 PM

#### Changes

##### Fix

- add optional document context for resize listeners prettier
([`9aba3c0`](https://togithub.com/tanstack/table/commit/9aba3c08)) by
Kevin Vandy
- add optional document context for resize listeners
([#&#8203;5003](https://togithub.com/tanstack/table/issues/5003))
([`8e106a9`](https://togithub.com/tanstack/table/commit/8e106a99)) by
Jareth
- Correctly exit publish script
([#&#8203;5262](https://togithub.com/tanstack/table/issues/5262))
([`57336fc`](https://togithub.com/tanstack/table/commit/57336fc7)) by
Lachlan Collins

##### Chore

- Fix incorrect npm tag for previous version release
([#&#8203;5265](https://togithub.com/tanstack/table/issues/5265))
([`0899c33`](https://togithub.com/tanstack/table/commit/0899c335)) by
Lachlan Collins
- Stricter tsconfig options
([#&#8203;5264](https://togithub.com/tanstack/table/issues/5264))
([`86d6447`](https://togithub.com/tanstack/table/commit/86d64470)) by
Lachlan Collins
- Update to Rollup v4, Vite v5
([#&#8203;5260](https://togithub.com/tanstack/table/issues/5260))
([`fefe74f`](https://togithub.com/tanstack/table/commit/fefe74f4)) by
Lachlan Collins
- Update examples to use Vite v4
([#&#8203;5259](https://togithub.com/tanstack/table/issues/5259))
([`5d615ab`](https://togithub.com/tanstack/table/commit/5d615ab5)) by
Lachlan Collins
- Update select workspace dependencies
([#&#8203;5258](https://togithub.com/tanstack/table/issues/5258))
([`a990435`](https://togithub.com/tanstack/table/commit/a990435f)) by
Lachlan Collins

##### Docs

- fix meta data example
([#&#8203;5256](https://togithub.com/tanstack/table/issues/5256))
([`6561267`](https://togithub.com/tanstack/table/commit/65612676)) by
Nathan Isaac
- fix feature guide links
([`8a14fa6`](https://togithub.com/tanstack/table/commit/8a14fa66)) by
Kevin Vandy
- refactor guides section and new table instance guide
([#&#8203;5254](https://togithub.com/tanstack/table/issues/5254))
([`b327934`](https://togithub.com/tanstack/table/commit/b3279343)) by
Kevin Van Cott
- add solid filters example
([#&#8203;5252](https://togithub.com/tanstack/table/issues/5252))
([`80d92d6`](https://togithub.com/tanstack/table/commit/80d92d6f)) by
Hephaestian

##### Ci

- Use publish function from `@tanstack/config`
([#&#8203;5257](https://togithub.com/tanstack/table/issues/5257))
([`43989f2`](https://togithub.com/tanstack/table/commit/43989f26)) by
Lachlan Collins

#### Packages

-
[@&#8203;tanstack/table-core](https://togithub.com/tanstack/table-core)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/react-table](https://togithub.com/tanstack/react-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/solid-table](https://togithub.com/tanstack/solid-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/vue-table](https://togithub.com/tanstack/vue-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/svelte-table](https://togithub.com/tanstack/svelte-table)[@&#8203;8](https://togithub.com/8).11.4
-
[@&#8203;tanstack/react-table-devtools](https://togithub.com/tanstack/react-table-devtools)[@&#8203;8](https://togithub.com/8).11.4

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 18:14:57 +00:00
Nnenna Ndukwe
b64f8ad800
React examples doc with images and relative links (#5921)
<!-- 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. -->

This is a large PR with all of the React examples building on top of the
original tutorial.

Based off of this Google Doc:
https://docs.google.com/document/d/1m3ujgyrkJTCGLsEsBr1_eq4HQKqsf-lfvGFDJobns44/edit

I also included updates to the React tutorial links so they are relative
paths, not full URL paths.

I propose we make fast-follow updates to this piece of documentation for
changes we need to make in order to release and iterate on minor
updates.

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->

website/docs/feature-flag-tutorials/react/examples.md

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-01-18 11:39:25 -05:00
Mateusz Kwasniewski
1fd7749ae7
fix: prevent jumping columns in search view (#5950) 2024-01-18 14:37:57 +01:00
Gastón Fournier
80bc4e05a2
chore: add types to pat middleware (#5951)
Add proper types
2024-01-18 14:36:42 +01:00
Mateusz Kwasniewski
105747293e
fix: show pagination when enough items (#5948) 2024-01-18 14:36:05 +01:00
Nuno Góis
3dd188e77c
refactor: shared url_safe_basic constant (#5952)
Uses a new `URL_SAFE_BASIC` regex constant that checks for characters
that are commonly used in URL path sections: alphanumeric lowercase
characters, dashes and underscores.

This will allow us to re-use this constant in our server-side
validation.
2024-01-18 12:33:33 +00:00
Gastón Fournier
b91df61994
chore: re use extract user methods (#5947)
## About the changes
1. Re-use existing methods in extract-user.ts:
70f6a07f2c/src/lib/features/events/event-service.ts (L93-L101)
2. Move event-service and event-store to features/event
3. Add export default in previous paths for backward compatibility:
70f6a07f2c/src/lib/services/event-service.ts (L1-L4)
and
70f6a07f2c/src/lib/db/event-store.ts (L1-L4)
2024-01-18 13:15:21 +01:00
Jaanus Sellin
605125fbb5
feat: add primary keys to missing tables (#5943)
Follow up of https://github.com/Unleash/unleash/issues/4303

We are adding primary keys to all tables missing them, currently
**role_permission**, **api_token_project**, and **project_stats**.
By adding primary keys, the issue with migrations failing during
upgrades in replicated database setups will be resolved.
2024-01-18 13:52:51 +02:00
Nuno Góis
5b56fac66f
Chore inc webhooks modal form (#5938)
https://linear.app/unleash/issue/2-1818/ui-create-incoming-webhook-newedit-modal

Adds the incoming webhooks modal form, which allows users to create and
edit incoming webhooks, along with their respective tokens.

Follows a logic similar to service accounts and their tokens, and tries
to use the newest form validation flow that we implemented in the roles
form.


![image](https://github.com/Unleash/unleash/assets/14320932/5d37a72e-2777-4c8b-b71b-3c0610959a52)
2024-01-18 11:38:05 +00:00
Tymoteusz Czech
4b02d6aa9c
Executive Dashboard page setup (#5949) 2024-01-18 12:32:25 +01:00
Mateusz Kwasniewski
d3215335c9
feat: metrics periods expressed in days (#5928) 2024-01-18 11:54:20 +01:00
Mateusz Kwasniewski
f5cf118b12
fix: precise selected all chips check (#5945) 2024-01-18 11:53:56 +01:00
Mateusz Kwasniewski
567099a15b
fix: table loader (#5937) 2024-01-18 11:26:42 +01:00
Christopher Kolstad
86b5f108d0
fix: feature toggle update total needs 4 labels (#5946)
So, this was causing a lot of ERROR in our logs, due to the metric
having gotten an extra label the last month.

Two things for this fix.
1. add the missing label to the two calls that did not have it added
2. update the log line to include the error as another argument to the
logger, so we actually get a stacktrace from the error.
2024-01-18 11:00:56 +01:00
Christopher Kolstad
043beca616
docs: add deprecation notice to Admin tokens (#5909)
We want to deprecate and eventually remove the option for admin tokens.
This PR updates the docs to inform readers about the deprecation as well
as recommending what they can use instead.
2024-01-18 09:58:40 +01:00
Christopher Kolstad
fa72ced1e5
feat: added more granular project permissions (#5932)
### What
Adds Read and Write permissions for project administration settings
(user access, change request settings, default strategy, other).

### Why
On request from two large customers that wanted our RBAC controls to be
more granulated to easier be able to limit the access they granted their
users.
2024-01-18 09:57:44 +01:00
renovate[bot]
77985ec0f3
chore(deps): update actions/cache action to v4 (#5941)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/cache](https://togithub.com/actions/cache) | action | major |
`v3` -> `v4` |

---

### Release Notes

<details>
<summary>actions/cache (actions/cache)</summary>

### [`v4`](https://togithub.com/actions/cache/compare/v3...v4)

[Compare Source](https://togithub.com/actions/cache/compare/v3...v4)

</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**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 09:28:53 +02:00
Gastón Fournier
ceaaf3d0f3
feat: admin token calls get an admin token user (#5924)
## About the changes
Whenever we get a call from an admin token we want to associate it with
the [admin token
user](4d42093a07/src/lib/types/core.ts (L34-L41)).
This should give us the needed audit for this type of calls that
currently were lacking a user id (we only stored a string with the token
name in the event log).

We consciously decided not to use `id` as the property to prevent any
unforeseen side effects. The reason is that only `IUser` type has an id
and adding an id to `IApiUser` might lead to confusion.
2024-01-17 16:55:59 +01:00
renovate[bot]
6a5ce1f2a0
chore(deps): update lycheeverse/lychee-action action to v1.9.1 (#5935)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[lycheeverse/lychee-action](https://togithub.com/lycheeverse/lychee-action)
| action | patch | `v1.9.0` -> `v1.9.1` |

---

### Release Notes

<details>
<summary>lycheeverse/lychee-action (lycheeverse/lychee-action)</summary>

###
[`v1.9.1`](https://togithub.com/lycheeverse/lychee-action/releases/tag/v1.9.1):
Version 1.9.1

[Compare
Source](https://togithub.com/lycheeverse/lychee-action/compare/v1.9.0...v1.9.1)

This is a hotfix release which restores the behavior of the `accept`
config parameter.
Integers are accepted again as status codes.

```toml
accept = [200, 201, 202, 203, 429]
```

is equivalent to

```toml
accept = ["200..=203", 429]
```

Integers and strings (e.g. for ranges) can be mixed.

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 14:39:33 +00:00
Jaanus Sellin
242d2e5f27
chore : upgrade jsdom to 23 (#5934) 2024-01-17 16:20:27 +02:00
Daniel Brooks
1392b10727
fix(import): making all imports relative and removing baseUrl (#5847)
Co-authored-by: Simon Hornby <liquidwicked64@gmail.com>
2024-01-17 15:33:03 +02:00
andreas-unleash
60813acb09
fix: make the conflcit email template button conditionally render (#5931)
Makes the schedule conflict email button conditional to having the link
present.

Closes #
[1-1950](https://linear.app/unleash/issue/1-1950/modify-the-template-to-make-the-new-button-conditional)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-01-17 13:26:07 +00:00
Fredrik Strand Oseberg
1deee10317
Feat/disabled strategies (#5930)
This PR makes disabled strategies more prominent in the UI:

<img width="1031" alt="Skjermbilde 2024-01-17 kl 11 26 11"
src="https://github.com/Unleash/unleash/assets/16081982/4a07c0aa-8f86-4854-829e-1088abecfb4e">
2024-01-17 13:20:39 +01:00
Jaanus Sellin
ee08bd8d42
chore(deps): update dependency @types/supertest to v6 (#5926)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 13:36:17 +02:00