1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-25 00:07:47 +01:00
Commit Graph

5546 Commits

Author SHA1 Message Date
Thomas Heartman
d087749e5b
feat(1-3267): fix type, uncomment conversion 2025-01-24 14:30:57 +01:00
Thomas Heartman
26f7eb0ca4
feat(1-3267): make the chart mostly work 2025-01-24 12:40:49 +01:00
Thomas Heartman
c9a78fa674
feat(1-3267): some re-juggling 2025-01-24 12:23:46 +01:00
Thomas Heartman
b0b80d913f
feat(1-3267): use new api for chart 2025-01-24 12:09:52 +01:00
Thomas Heartman
b2abeff3b7
feat(1-3267): use new API for chart creation
wip
2025-01-24 11:45:26 +01:00
renovate[bot]
938f12908b
chore(deps): update dependency @types/react to v18.3.18 (#9146)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.17` ->
`18.3.18`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.17/18.3.18)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.17/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.17/18.3.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 00:29:03 +00:00
renovate[bot]
c928a64ed2
chore(deps): update dependency @types/node to v20.17.14 (#9145)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.17.10` ->
`20.17.14`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.10/20.17.14)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.10/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.10/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 20:51:53 +00:00
David Leek
7aefc573dc
feat: show a dialog when adding a release plan to a change request enabled feature environment (#9139) 2025-01-23 13:48:44 +01:00
renovate[bot]
89cb9dc59a
chore(deps): update dependency vite to v5.4.12 [security] (#9131)
This PR contains the following updates:

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

### GitHub Vulnerability Alerts

####
[CVE-2025-24010](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-vg6x-rcgg-rjx6)

### Summary
Vite allowed any websites to send any requests to the development server
and read the response due to default CORS settings and lack of
validation on the Origin header for WebSocket connections.

### Upgrade Path
Users that does not match either of the following conditions should be
able to upgrade to a newer version of Vite that fixes the vulnerability
without any additional configuration.

- Using the backend integration feature
- Using a reverse proxy in front of Vite
- Accessing the development server via a domain other than `localhost`
or `*.localhost`
- Using a plugin / framework that connects to the WebSocket server on
their own from the browser

#### Using the backend integration feature
If you are using the backend integration feature and not setting
[`server.origin`](https://vite.dev/config/server-options.html#server-origin),
you need to add the origin of the backend server to the
[`server.cors.origin`](https://redirect.github.com/expressjs/cors#configuration-options)
option. Make sure to set a specific origin rather than `*`, otherwise
any origin can access your development server.

#### Using a reverse proxy in front of Vite
If you are using a reverse proxy in front of Vite and sending requests
to Vite with a hostname other than `localhost` or `*.localhost`, you
need to add the hostname to the new
[`server.allowedHosts`](https://vite.dev/config/server-options.html#server-allowedhosts)
option. For example, if the reverse proxy is sending requests to
`http://vite:5173`, you need to add `vite` to the `server.allowedHosts`
option.

#### Accessing the development server via a domain other than
`localhost` or `*.localhost`
You need to add the hostname to the new
[`server.allowedHosts`](https://vite.dev/config/server-options.html#server-allowedhosts)
option. For example, if you are accessing the development server via
`http://foo.example.com:8080`, you need to add `foo.example.com` to the
`server.allowedHosts` option.

#### Using a plugin / framework that connects to the WebSocket server on
their own from the browser
If you are using a plugin / framework, try upgrading to a newer version
of Vite that fixes the vulnerability. If the WebSocket connection
appears not to be working, the plugin / framework may have a code that
connects to the WebSocket server on their own from the browser.

In that case, you can either:

- fix the plugin / framework code to the make it compatible with the new
version of Vite
- set `legacy.skipWebSocketTokenCheck: true` to opt-out the fix for [2]
while the plugin / framework is incompatible with the new version of
Vite
- When enabling this option, **make sure that you are aware of the
security implications** described in the impact section of [2] above.

### Mitigation without upgrading Vite

#### [1]: Permissive default CORS settings
Set `server.cors` to `false` or limit `server.cors.origin` to trusted
origins.

#### [2]: Lack of validation on the Origin header for WebSocket
connections
There aren't any mitigations for this.

#### [3]: Lack of validation on the Host header for HTTP requests
Use Chrome 94+ or use HTTPS for the development server.

### Details

There are three causes that allowed malicious websites to send any
requests to the development server:

#### [1]: Permissive default CORS settings

Vite sets the
[`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin)
header depending on
[`server.cors`](https://vite.dev/config/server-options.html#server-cors)
option. The default value was `true` which sets
`Access-Control-Allow-Origin: *`. This allows websites on any origin to
`fetch` contents served on the development server.

Attack scenario:

1. The attacker serves a malicious web page
(`http://malicious.example.com`).
2. The user accesses the malicious web page.
3. The attacker sends a `fetch('http://127.0.0.1:5173/main.js')` request
by JS in that malicious web page. This request is normally blocked by
same-origin policy, but that's not the case for the reasons above.
4. The attacker gets the content of `http://127.0.0.1:5173/main.js`.

#### [2]: Lack of validation on the Origin header for WebSocket
connections

Vite starts a WebSocket server to handle HMR and other functionalities.
This WebSocket server [did not perform validation on the Origin
header](https://redirect.github.com/vitejs/vite/blob/v6.0.7/packages/vite/src/node/server/ws.ts#L145-L157)
and was vulnerable to Cross-Site WebSocket Hijacking (CSWSH) attacks.
With that attack, an attacker can read and write messages on the
WebSocket connection. Vite only sends some information over the
WebSocket connection ([list of the file paths that changed, the file
content where the errored happened,
etc.](https://redirect.github.com/vitejs/vite/blob/v6.0.7/packages/vite/types/hmrPayload.d.ts#L12-L72)),
but plugins can send arbitrary messages and may include more sensitive
information.

Attack scenario:

1. The attacker serves a malicious web page
(`http://malicious.example.com`).
2. The user accesses the malicious web page.
3. The attacker runs `new WebSocket('http://127.0.0.1:5173',
'vite-hmr')` by JS in that malicious web page.
4. The user edits some files.
5. Vite sends some HMR messages over WebSocket.
6. The attacker gets the content of the HMR messages.

#### [3]: Lack of validation on the Host header for HTTP requests

Unless
[`server.https`](https://vite.dev/config/server-options.html#server-https)
is set, Vite starts the development server on HTTP. Non-HTTPS servers
are vulnerable to DNS rebinding attacks without validation on the Host
header. But Vite did not perform validation on the Host header. By
exploiting this vulnerability, an attacker can send arbitrary requests
to the development server bypassing the same-origin policy.

1. The attacker serves a malicious web page that is served on **HTTP**
(`http://malicious.example.com:5173`) (HTTPS won't work).
2. The user accesses the malicious web page.
3. The attacker changes the DNS to point to 127.0.0.1 (or other private
addresses).
4. The attacker sends a `fetch('/main.js')` request by JS in that
malicious web page.
5. The attacker gets the content of `http://127.0.0.1:5173/main.js`
bypassing the same origin policy.

### Impact

#### [1]: Permissive default CORS settings
Users with the default `server.cors` option may:

- get the source code stolen by malicious websites
- give the attacker access to functionalities that are not supposed to
be exposed externally
- Vite core does not have any functionality that causes changes
somewhere else when receiving a request, but plugins may implement those
functionalities and servers behind `server.proxy` may have those
functionalities.

#### [2]: Lack of validation on the Origin header for WebSocket
connections
All users may get the file paths of the files that changed and the file
content where the error happened be stolen by malicious websites.

For users that is using a plugin that sends messages over WebSocket,
that content may be stolen by malicious websites.

For users that is using a plugin that has a functionality that is
triggered by messages over WebSocket, that functionality may be
exploited by malicious websites.

#### [3]: Lack of validation on the Host header for HTTP requests
Users using HTTP for the development server and using a browser that is
not Chrome 94+ may:

- get the source code stolen by malicious websites
- give the attacker access to functionalities that are not supposed to
be exposed externally
- Vite core does not have any functionality that causes changes
somewhere else when receiving a request, but plugins may implement those
functionalities and servers behind `server.proxy` may have those
functionalities.

Chrome 94+ users are not affected for [3], because [sending a request to
a private network page from public non-HTTPS page is
forbidden](https://developer.chrome.com/blog/private-network-access-update#chrome_94)
since Chrome 94.

### Related Information
Safari has [a bug that blocks requests to loopback addresses from HTTPS
origins](https://bugs.webkit.org/show_bug.cgi?id=171934). This means
when the user is using Safari and Vite is listening on lookback
addresses, there's another condition of "the malicious web page is
served on HTTP" to make [1] and [2] to work.

### PoC

#### [2]: Lack of validation on the Origin header for WebSocket
connections
1. I used the `react` template which utilizes HMR functionality.

```
npm create vite@latest my-vue-app-react -- --template react
```

2. Then on a malicious server, serve the following POC html:
```html
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>vite CSWSH</title>
    </head>
    <body>
        <div id="logs"></div>
        <script>
            const div = document.querySelectorAll('#logs')[0];
            const ws = new WebSocket('ws://localhost:5173','vite-hmr');
            ws.onmessage = event => {
                const logLine = document.createElement('p');
                logLine.innerHTML = event.data;
                div.append(logLine);
            };
        </script>
    </body>
</html>
```

3. Kick off Vite 

```
npm run dev
```

4. Load the development server (open `http://localhost:5173/`) as well
as the malicious page in the browser.
5. Edit `src/App.jsx` file and intentionally place a syntax error
6. Notice how the malicious page can view the websocket messages and a
snippet of the source code is exposed

Here's a video demonstrating the POC:


https://github.com/user-attachments/assets/a4ad05cd-0b34-461c-9ff6-d7c8663d6961

---

### Release Notes

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

###
[`v5.4.12`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.12)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.11...v5.4.12)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 22:19:51 +00:00
renovate[bot]
2a06a71f28
chore(deps): update dependency @codemirror/state to v6.5.1 (#9129)
This PR contains the following updates:

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

---

### Release Notes

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

###
[`v6.5.1`](https://redirect.github.com/codemirror/state/blob/HEAD/CHANGELOG.md#651-2025-01-10)

[Compare
Source](https://redirect.github.com/codemirror/state/compare/6.5.0...6.5.1)

##### Bug fixes

`countColumn` no longer loops infinitely when given a `to` that's higher
than the input string's length.

</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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 22:13:06 +00:00
David Leek
09872ae760
chore: create the releasePlanChangeRequests feature flag (#9126) 2025-01-21 14:26:22 +01:00
Thomas Heartman
e4eab4587c
fix: add a hover color for buttons in the period selectors. (#9125)
Adds the same hover color as for the sidebar. Also adds a transition
animation.
2025-01-21 13:23:07 +01:00
Thomas Heartman
5846952d7c
fix: specify colors for buttons (#9124)
Fixes an issue where the buttons would be illegible in dark mode
because we don't set the color explicitly. It just happened to work in
light mode.
2025-01-21 12:51:20 +01:00
Thomas Heartman
857c91b803
feat(1-3262): initial impl of new month/range picker (#9122)
This PR implements a first version of the new month/range picker for the
data usage graphs. It's minimally hooked up to the existing
functionality to not take anything away.

This primary purpose of this PR is to get the design and interaction out
on sandbox so that UX can have a look and we can make adjustments.

As such, there are a few things in the code that we'll want to clean up
before removing the flag later:
- for faster iteration, I've used a lot of CSS nesting and element
selectors. this isn't usually how we do it here, so we'll probably want
to extract into styled components later
- there is a temporary override of the value in the period selector so
that you can select ranges. It won't affect the chart state, but it
affects the selector state. Again, this lets you see how it acts and
works.
- I've added a `NewHeader` component because the existing setup smushed
the selector (it's a MUI grid setup, which isn't very flexible). I don't
know what we want to do with this in the end, but the existing chart
*does* have some problems when you resize your window, at least
(although this is likely due to the chart, and can be solved in the same
way that we did for the personal dashboards).


![image](https://github.com/user-attachments/assets/f3ce3ff9-bab3-4d00-afbe-56f5624fbe16)
2025-01-21 12:15:43 +01:00
Tymoteusz Czech
08a28c99d6
fix: align project roles checkboxes (#9123)
Fix checkbox alignment and grouping
2025-01-21 10:34:20 +00:00
Tymoteusz Czech
874aeacca1
fix: resolve lifecycle image from asset path (#9121) 2025-01-20 13:23:55 +00:00
Tymoteusz Czech
666b5b7000
feat: New in Unleash - Lifecycle 2.0 (#9112) 2025-01-20 11:50:44 +00:00
Thomas Heartman
f6479b1adb
chore(1-3267): use the user's locale settings for formatting the tooltip date (#9113)
This PR updates the tooltip date display in the traffic usage chart to
use the user's chosen locale settings, falling back to en-US if the
settings are unavailable or otherwise unset.

So, for instance, if I have set my locale to "ja-JP", I'd get this
instead of the en US format:

![image](https://github.com/user-attachments/assets/4c1dbeab-3275-405d-ab8b-90f24531caff)
2025-01-17 11:56:40 +01:00
David Leek
2d340f6a21
chore: fix traffic data timezone visualization issue with getUTCDate (#9110) 2025-01-17 09:59:15 +01:00
Fredrik Strand Oseberg
25c09c3627
feat: transparent header (#9108)
This PR adds header redesign behind a feature flag
2025-01-17 09:45:45 +01:00
Tymoteusz Czech
4b3b98f263
feat: update lifecycle tooltip style (#9107)
New tooltips for lifecycle indicators.
- removed "timeline" lifecycle explanation
- new descriptions
- changed tooltip footer colors
- refactored "environments" section
2025-01-16 15:53:03 +00:00
Tymoteusz Czech
50ab2c9d61
feat: rename lifecycle stages (#9102)
Name names for "lifecycle" stages, and aligning frontend types.
2025-01-16 08:41:11 +00:00
David Leek
846dae66bd
chore: fix release template strategy padding and spacing (#9104) 2025-01-16 09:13:22 +01:00
David Leek
d20af9e5de
chore: make remove release plan warning conditional on env. enabled (#9103) 2025-01-15 15:29:49 +01:00
David Leek
c98d0e71a3
feat: conditionally show groupId in StrategyExecution under rollout (#9101) 2025-01-15 12:56:19 +01:00
Tymoteusz Czech
a2b78df0ad
feat: new lifecycle icons (#9098)
- Feature flag added
- New assets
2025-01-15 08:53:07 +01:00
David Leek
87917da4df
chore: feature release plans other strategies indicator (#9097) 2025-01-14 15:07:03 +01:00
Nuno Góis
3eeab7e80b
chore: new release plan template card (#9096)
https://linear.app/unleash/issue/2-3125/improve-release-plan-template-cards

Improves the release plan template cards.

This PR introduces a new reusable `Card` component to help us render
cards with the new design. The GroupCard is also adapted to use this new
`Card` component in this PR, since that was the latest one to be
upgraded, however other items like projects and integrations are not. We
can migrate them to this new component at a later stage in separate PRs.

### Before


![image](https://github.com/user-attachments/assets/623454c7-77e9-4672-ad5b-cb6bd7cbf7f2)

### After


![image](https://github.com/user-attachments/assets/20bff73e-80d2-41b5-8f8b-de1c76e69caf)
2025-01-14 13:49:50 +00:00
Tymoteusz Czech
b5f0d3e86a
refactor: project permissions list (#9082)
Re-organized project permissions.
2025-01-14 14:24:25 +01:00
David Leek
900df537e3
chore: move strategy UI into milestonecard and open milestone when adding strategy to it (#9095) 2025-01-14 13:02:53 +01:00
David Leek
3759b5a75d
chore: fix smaller broken UI things in release templates (#9084) 2025-01-13 13:02:06 +01:00
David Leek
cc55d8dfa8
chore: improve create template fields for name+description (#9075) 2025-01-10 14:39:17 +01:00
Tymoteusz Czech
91cebc5afc
fix: text overflow on project users access page (#8853)
Remove scrollbar in project settings - user roles
2025-01-10 09:51:42 +01:00
Nuno Góis
537ef42f7d
chore: mark SSO as an Enterprise only feature (#9071)
https://linear.app/unleash/issue/2-3124/mark-sso-as-an-enterprise-only-feature

For all intents and purposes, SSO seems to have always been an
Enterprise only feature. It just wasn't very clear previously.

See: https://github.com/Unleash/unleash/pull/9045/files#r1899635618


![image](https://github.com/user-attachments/assets/7ffed499-83d6-4dc2-ae11-6b0d930a82d1)
2025-01-09 13:07:28 +00:00
Jaanus Sellin
73515d78ce
chore: remove simplifyProjectOverview flag (#9068)
Remove the flag and delete unused components.
2025-01-08 14:10:40 +02:00
Nuno Góis
e7269473f3
chore: new hosted auth handler (#9045)
https://linear.app/unleash/issue/2-3074/add-sign-in-with-google-to-our-hosted-instances-when-only-password-is

https://linear.app/unleash/issue/2-3078/allow-viewer-access-from-auth-app-for-payg

Adds support for a new unified hosted auth handler.

This new auth handler provides a Google sign in option in case you don't
have an SSO provider configured. It also provides a way for auth-app to
sign in with Unleash's read-only user for Pro and Enterprise PAYG
instances.

Check the PR comments for more details.
2025-01-08 10:02:35 +00:00
David Leek
55f7de0d59
chore: improve the release plan template accordion looks (#9065) 2025-01-08 10:25:07 +01:00
Tymoteusz Czech
dc4a760172
feat: read logs and update cors maintenance root-role permissions (#8996)
Additional granular permissions related to instance-level access.

- CORS settings
- Reading logs (both instance logs and login history)

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-01-08 10:03:40 +01:00
Nuno Góis
cb77b106bd
chore: make grid group cards have a consistent height (#9064)
https://linear.app/unleash/issue/2-3114/group-cards-should-have-a-consistent-height-in-their-grid

Makes the group cards height consistent in the grid.

<img width="1034" alt="image"
src="https://github.com/user-attachments/assets/27c2dbd4-4a72-419b-bbad-39a4309e5c30"
/>
2025-01-06 14:54:36 +00:00
gitar-bot[bot]
1c0431365e
[Gitar] Cleaning up stale flag: licensedUsers with value true (#9061)
[![Gitar](https://raw.githubusercontent.com/gitarcode/.github/main/assets/gitar-banner.svg)](https://gitar.ai)
This automated PR permanently enables the `licensedUsers` feature flag.
  
  ---
This automated PR was generated by [Gitar](https://gitar.ai). View
[docs](https://gitar.ai/docs).

---------

Co-authored-by: Gitar <noreply@gitar.ai>
2025-01-06 10:44:13 +02:00
Mateusz Kwasniewski
790d813455
fix: save context button spacing (#9059) 2025-01-03 15:01:46 +01:00
David Leek
4f6e581dec
chore: reorder release plan template UI files (#9057) 2025-01-03 14:38:27 +01:00
David Leek
7893d3fbd3
feat: rework frontend validation for release plan templates (#9055) 2025-01-03 13:19:15 +01:00
Nuno Góis
3c16616c36
chore: improve group projects tooltip behavior (#9054)
https://linear.app/unleash/issue/2-3111/improve-group-card-projects-tooltip

Slight improvement to the group card projects tooltip.

This handles very long project names a little bit better by allowing
them to break into new lines.


![image](https://github.com/user-attachments/assets/8f30e729-7877-463b-8e1e-d05934396827)
2025-01-03 11:10:38 +00:00
Nuno Góis
7eced2962f
chore: new user avatar tooltip (#9050)
https://linear.app/unleash/issue/2-3109/improve-avatar-tooltip

I noticed our current user avatar tooltip is a bit poor.

This PR tries to improve it a bit using only the data we already have
available, without any drastic changes.

### Before


![image](https://github.com/user-attachments/assets/2eeb87ca-791a-422d-9e8b-27537b6f38ef)

### After


![image](https://github.com/user-attachments/assets/38bc1bb1-9187-4bf8-88ec-e57f4c95a0c8)

### Other examples after the changes


![image](https://github.com/user-attachments/assets/f25172aa-24aa-4c8c-8d46-65e2b61a33b9)


![image](https://github.com/user-attachments/assets/a420cafb-e690-4495-bf7f-b7b3d3ddf311)


![image](https://github.com/user-attachments/assets/66b2efa3-269e-4384-96a5-1b089333a9d1)


![image](https://github.com/user-attachments/assets/7c56dcf0-b6f1-4433-840a-e975baec6785)

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2025-01-03 10:26:02 +00:00
Nuno Góis
67c1274a1b
chore: group cards redesign (#9048)
https://linear.app/unleash/issue/2-3108/cards-design-groups

Redesigns the group cards.

Like instructed in the task, I took inspiration from the project and
integration cards, along with the Figma sketch.

Also includes a new `Truncator` generic helper component.

### Before


![image](https://github.com/user-attachments/assets/e47ebb3d-a089-4cbb-962c-53af9f1933f9)

### After


![image](https://github.com/user-attachments/assets/ffeb96b7-e6c4-4433-a847-2e267beb72e9)

Hovering over the "X projects" label reveals the projects the group
belongs to. You can navigate to any project by clicking its badge.


![image](https://github.com/user-attachments/assets/cf06c7f5-011e-4b89-8e40-ed42e5817625)

Truncated titles and descriptions show a tooltip with the full text on
hover.


![image](https://github.com/user-attachments/assets/6fc598e7-b08a-4bfa-8cb2-4153a81f2a48)


![image](https://github.com/user-attachments/assets/91ceba73-c43e-4070-9de0-2a182a3d9257)
2025-01-02 15:08:15 +00:00
Mateusz Kwasniewski
e0b4e258dc
feat: grouping of project level roles in autocomplete (#9046) 2024-12-31 10:44:48 +01:00
Mateusz Kwasniewski
18cd0e2cdb
fix: legal values styling in segments (#9044) 2024-12-31 08:45:17 +01:00
renovate[bot]
ed9c0a466c
chore(deps): update dependency cypress to v13.17.0 (#9035)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [cypress](https://cypress.io)
([source](https://redirect.github.com/cypress-io/cypress)) | [`13.16.1`
-> `13.17.0`](https://renovatebot.com/diffs/npm/cypress/13.16.1/13.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/cypress/13.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cypress/13.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cypress/13.16.1/13.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cypress/13.16.1/13.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>cypress-io/cypress (cypress)</summary>

###
[`v13.17.0`](https://redirect.github.com/cypress-io/cypress/releases/tag/v13.17.0)

[Compare
Source](https://redirect.github.com/cypress-io/cypress/compare/v13.16.1...v13.17.0)

Changelog: https://docs.cypress.io/app/references/changelog#13-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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-24 22:40:22 +00:00
renovate[bot]
6163d8b93f
chore(deps): update dependency sass to v1.83.0 (#9032)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [sass](https://redirect.github.com/sass/dart-sass) | [`1.81.1` ->
`1.83.0`](https://renovatebot.com/diffs/npm/sass/1.81.1/1.83.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/sass/1.83.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sass/1.83.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sass/1.81.1/1.83.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sass/1.81.1/1.83.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>sass/dart-sass (sass)</summary>

###
[`v1.83.0`](https://redirect.github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1830)

[Compare
Source](https://redirect.github.com/sass/dart-sass/compare/1.82.0...1.83.0)

-   Allow trailing commas in *all* argument and parameter lists.

###
[`v1.82.0`](https://redirect.github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1820)

[Compare
Source](https://redirect.github.com/sass/dart-sass/compare/1.81.1...1.82.0)

##### Command-Line Interface

- Improve `--watch` mode reliability when making multiple changes at
once, such
    as checking out a different Git branch.

- Parse the `calc-size()` function as a calculation now that it's
supported in
    some browsers.

##### Dart API

-   Add a `SassCalculation.calcSize()` function.

</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 is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-24 18:12:26 +00:00