1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
Commit Graph

12232 Commits

Author SHA1 Message Date
Thomas Heartman
050e53e564
feat: return project owners (#8312)
This PR is part 1 of returning project owners and your project roles for
the personal dashboard single-project endpoint.

It moves the responsibility of adding owners and roles to the project to
the service from the controller and adds a new method to the project
owners read model to take care of it.

I'll add roles and tests in follow-up PRs.
2024-10-01 08:18:42 +00:00
Mateusz Kwasniewski
7ac283aa50
feat: skeleton loaders for personal dashboard (#8313) 2024-10-01 10:16:20 +02:00
Nuno Góis
a8eda9d61f
chore: event timeline signals (#8310)
https://linear.app/unleash/issue/2-2665/show-signals-in-the-event-timeline

Implements signals in the event timeline.

This merges events and signals into a unified `TimelineEvent`
abstraction, streamlining the data structure to only include properties
relevant to the timeline.

Key changes:
- Refactors the timeline logic to handle both events and signals through
the new abstraction.
- Introduces the `useSignalQuery` hook, modeled after `useEventSearch`,
as both serve similar purposes, albeit for different resource types.

Note: The signals suggestion alert is not included and will be addressed
in a future task.


![image](https://github.com/user-attachments/assets/9dad5c21-cd36-45e6-9369-ceca25936123)
2024-10-01 09:02:08 +01:00
Fredrik Strand Oseberg
dcb0228105
fix: handle empty strings on permissions gracefully in access service (#8306)
Splitting #8271 into smaller pieces. This first PR will focus on making
access service handle empty string inputs gracefully and converting them
to null before inserting them into the database.
2024-10-01 09:03:46 +02:00
Mateusz Kwasniewski
b037bfb71c
feat: include favorite projects in personal dashboard (#8309) 2024-09-30 16:48:58 +02:00
Mateusz Kwasniewski
6d16fc60ce
feat: Personal dashboard flag created (#8305) 2024-09-30 16:09:31 +02:00
Thomas Heartman
50c5af8632
feat: hook up admin / owner data to UI (#8300)
This PR hooks up the owners and admins of Unleash to the UI. They'll
only be visible in cases where you have no projects.

In addition, it adds Orval schemas for the new payload properties and
updates the generating schemas to fix some minor typing issues.
2024-09-30 13:40:33 +00:00
Thomas Heartman
e4cec6629d
test: test the dashboard admins property (#8303)
This PR adds tests for the new admins property of the personal dashboard
API payload.

It checks that only user admins are added and that their image URL is
not an empty string. In doing this, also fixes an issue where the image
URL wouldn't be generated correctly.

## Discussion points

Some of the test feels like it might be better testing on a deeper level
(i.e. the account store). However, from an initial glance, I think that
would require more setup and work, so I'm leaving it in the dashboard
test for now as that's where it's ultimately useful. But we can discuss
if we should move it.
2024-09-30 13:38:00 +00:00
Mateusz Kwasniewski
d7db80d948
feat: use onboarding status to conditionally show badge and message (#8304) 2024-09-30 15:30:18 +02:00
Mateusz Kwasniewski
ac90c942db
feat: add onboarding status to personal dashboard api (#8302) 2024-09-30 14:25:56 +02:00
Ivar Conradi Østhus
01afe87302
fix: extend feature_toggle_update counter with details about action (#8202)
Ideally `feature_lifecycle_stage_entered{stage="archived"}` would allow
me to see how many flags are archived per week.
It seems like the numbers for this is a bit off, and wanted to extend
our current `feature_toggle_update` counter with action details.
2024-09-30 12:16:03 +00:00
Mateusz Kwasniewski
6f7170dc40
feat: open unleash concepts (#8301) 2024-09-30 13:32:05 +02:00
Thomas Heartman
a4ea46dab6
feat: add Unleash admins to API payload (#8299)
Adds Unleash admins to the personal dashboard payload.

Uses the access store (and a new method) to fetch admins and maps it to
a new `MinimalUser` type. We already have a `User` class, but it
contains a lot of information we don't care about here, such as `isAPI`,
SCIM data etc.

In the UI, admins will be shown to users who are not part of any
projects. This is the default state for new viewer users, and can also
happen for editors if you archive the default project, for instance.

Tests in a follow-up PR
2024-09-30 11:01:30 +00:00
Mateusz Kwasniewski
751c2fa902
feat: last project events ui polishing (#8298) 2024-09-30 11:18:25 +02:00
Melinda Fekete
1ea63a8a1f
Update UI text in Unleash welcome key concepts page (#8238) 2024-09-30 11:14:08 +02:00
Thomas Heartman
6188079122
feat: add project owners to personal dashboard (#8293)
This PR adds all user-type owners of projects that you have access to to
the personal dashboard payload. It adds the new `projectOwners` property
regardless of whether you have access to any projects or not because it
required less code and fewer conditionals, but we can do the filtering
if we want to.

To add the owners, it uses the private project checker to get accessible
projects before passing those to the project owner read model, which has
a new method to fetch user owners for projects.
2024-09-30 10:49:34 +02:00
Nnenna Ndukwe
b726a229d3
docs: A/B Testing Use Case Tutorial (#8257)
<img width="923" alt="Screenshot 2024-09-27 at 8 33 00 AM"
src="https://github.com/user-attachments/assets/7078b3fc-7d3a-44b9-9ab6-30f82bd1489f">

<!-- 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 are adding another use case tutorial to our docs!
Updates may come to this PR based on further engineering review.

<!-- Does it close an issue? Multiple? -->
Closes #

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### 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? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->
2024-09-27 19:55:11 +02:00
Mateusz Kwasniewski
f000579d5b
feat: adjust search query for personal project (#8296) 2024-09-27 15:23:00 +02:00
David Leek
530af3d7d6
fix: some integrations only counted errors not all results (#8295) 2024-09-27 14:57:26 +02:00
Nuno Góis
81840ed574
fix: event timeline should unmount when hidden and be closed by default (#8294)
Fixes 2 bugs:

- The initial state of the event timeline should have `open: false`, not
`true` - Closed by default, unless opened
- The event timeline should unmount when hidden - It should not emit
requests when closed
2024-09-27 13:11:25 +01:00
Mateusz Kwasniewski
147984f9d5
feat: display basic list of project events (#8291) 2024-09-27 14:02:30 +02:00
Tymoteusz Czech
c502e99b85
feat(onboarding): Android snippet (#8281) 2024-09-27 12:02:12 +00:00
Jaanus Sellin
ee9f8c8836
fix: now only one onboarding screen will be shown at time (#8290)
Makes the button more clear. 

Now both **onboarding** started and **onboarding finished** screens will
not be shown in the same time.
2024-09-27 14:58:03 +03:00
Nuno Góis
28edadd507
chore: fix search events endpoint description (#8289)
Scouting: I think this description was copy-pasted from the previous
endpoint and we forgot to update it.
2024-09-27 11:16:51 +00:00
Mateusz Kwasniewski
e540db4cb3
feat: return latest project events (#8287) 2024-09-27 12:47:21 +02:00
Jaanus Sellin
ed4c05d3c4
feat: add production snippets and resources (#8286)
Skipped .NET and Android because they are not ready. Also swift does not
support env variables, so skipped for now.

Added all rest.
2024-09-27 13:46:12 +03:00
Mateusz Kwasniewski
15144e4e93
docs: feature lifecycle availability (#8288) 2024-09-27 12:28:50 +02:00
Mateusz Kwasniewski
829fda77fd
refactor: composition root for personal dashboard service (#8280) 2024-09-27 10:44:27 +02:00
Thomas Heartman
6655b2d961
feat: create page for when you have no projects (#8285)
This adds a front end fallback screen for when you have no projects.


![image](https://github.com/user-attachments/assets/1e6e0a63-968a-43cf-84ee-9a67d9f0ca91)
2024-09-27 10:41:25 +02:00
Jaanus Sellin
b73c283e6c
feat: now code examples are joined into one (#8284)
Joined all examples into one copyable example.

Did not do following ones, because they are using templates and probably
will not work as joined.

1. React
2. Svelte
3. Vue

Also skipped, because those examples are not final yet.

1. .NET
2. Android



![image](https://github.com/user-attachments/assets/c8dabed4-21d0-4af9-900f-e77c5d069fe1)
2024-09-27 10:28:12 +03:00
Alvin Bryan
d1c3e3fa2c
Matching <title> and h1 for "11 principles" post (#8206) 2024-09-26 16:47:25 +01:00
Mateusz Kwasniewski
4107e84f43
feat: personal dashboard project details API stub (#8282) 2024-09-26 15:51:51 +02:00
Nuno Góis
d161fb49ee
chore: implement event grouping in the event timeline (#8254)
https://linear.app/unleash/issue/2-2663/implement-event-grouping-when-multiple-events-happen-in-a-short-period

This PR introduces a grouping logic for timeline events, enhancing the
way events are displayed when they occur close to each other.

We also updated and refactored components to support handling groups of
events rather than individual events.

Also includes some minor code cleanups and optimizations as part of
general refactoring efforts (scouting).


![image](https://github.com/user-attachments/assets/eed74ddd-017c-430d-b919-3cb7e257052d)

---------

Co-authored-by: David Leek <david@getunleash.io>
2024-09-26 14:48:52 +01:00
Jaanus Sellin
86e7bbc85d
feat: after onboarding show success box with resources (#8278)
![image](https://github.com/user-attachments/assets/7e60ad54-c750-4e8a-8556-a1735a99a43e)
2024-09-26 15:40:14 +03:00
Christopher Kolstad
547e41e566
docs: recommend PG v13 or later (#8276)
Unify on PG v13, we had one place recommending v10, release notes for v6
saying we dropped support for v10 through v12 and mentioning 13, and a
place mentioning 14 or newer.

fixes: #8265

---------

Co-authored-by: Melinda Fekete <melinda.fekete@getunleash.io>
2024-09-26 14:38:00 +02:00
Mateusz Kwasniewski
409e0e74ba
feat: read projects from personal dashboard API (#8279) 2024-09-26 14:17:47 +02:00
Tymoteusz Czech
2292e2f6ca
feat(onboarding): Vue and Svelte snippets (#8250) 2024-09-26 15:06:30 +03:00
Thomas Heartman
e20ef56374
fix: trim name and description before validation (#8275)
This fixes a bug where you can input just whitespace for
name/description. It also means that you can no longer have both "my
role" and "my role    " as separate roles.

API fix will follow.
2024-09-26 11:54:16 +00:00
Nuno Góis
eb01b44e69
test: skip vercel toolbar in e2e tests (#8273)
Some e2e Cypress tests were failing due to the Vercel live feedback
toolbar covering interactive elements, preventing test actions from
completing:
https://github.com/Unleash/unleash/actions/runs/11048512034/job/30692949711#step:4:136

This PR addresses the issue by disabling the Vercel toolbar specifically
during Cypress tests. This is done by setting the
`x-vercel-skip-toolbar` header, which Vercel provides to prevent the
toolbar from interfering with automated tests. You can find more
information about this feature in the Vercel documentation: [Disable
Toolbar for
Automation](https://vercel.com/docs/workflow-collaboration/vercel-toolbar/managing-toolbar#disable-toolbar-for-automation).

Specific type declarations were needed due to
https://github.com/cypress-io/cypress/issues/19564
2024-09-26 12:53:31 +01:00
Thomas Heartman
5a874df915
fix: trim role names before validation (#8277)
This trims role names before validation and subsequent validation.
This fixes a bug where you could have names that were empty or that
were duplicates of other names, but with leading or trailing
spaces. (They display the same in the UI).

This does not modify how we handle descriptions in the API. While the
UI form requires you to enter a description, the API does not. As
such, we can't make that required now without it being a breaking
change.
2024-09-26 11:52:51 +00:00
Mateusz Kwasniewski
137b8ee260
feat: project details for personal dashboard (#8274) 2024-09-26 13:43:51 +02:00
Thomas Heartman
d6f5280a98
feat: show user's roles and project owners (#8253)
This change shows the user's roles and project owners in the personal
dashboard.
2024-09-26 10:47:29 +00:00
Jaanus Sellin
4397af0df7
chore: move onboarding flow and dialog under same location (#8272)
It is mostly moving the onboarding folders under same directory for more
clear project structure.
2024-09-26 12:56:49 +03:00
Thomas Heartman
a7e0743d88
chore: remove manual anonymization of outgoing project owners (#8252)
This change removes the flag used to anonymize project owners on the
way out. It was an issue in demo when we'd forgotten to configure the
email encryption. However, this issue has been resolved and we can
remove this check now.
2024-09-26 11:29:18 +02:00
Mateusz Kwasniewski
ceb21fbe51
feat: get projects by ids (#8269) 2024-09-26 11:27:59 +02:00
Mateusz Kwasniewski
33f44072dc
docs: demo is pro (#8270) 2024-09-26 11:24:41 +02:00
Thomas Heartman
cf476f9e7d
chore: update orval for personal dashboards (#8268)
Updates orval for personal dashboards
2024-09-26 11:03:55 +02:00
Nuno Góis
3f80fdb090
fix: layout content width on large screens (#8267)
I believe the changes in https://github.com/Unleash/unleash/pull/8234,
more specifically [this
change](https://github.com/Unleash/unleash/pull/8234/files#diff-3a5e0763fe1effa9cd485763fecf0633ce8f0877c9d1971e6bd5c5abe7426364L64),
have caused the main layout content to no longer stretch to its maximum
relative width on larger screens.

This adjustment seems to resolve this issue, ensuring proper behavior on
larger screens without introducing any overflow issues on smaller
screens.
2024-09-26 09:51:15 +01:00
Jaanus Sellin
d0499dbf94
feat: sdk connected using production snippet (#8266)
1. Fix nodejs snippet
2. Tie the snippet to the completed stage.
3. Pull out the code renderer, to shared component


![image](https://github.com/user-attachments/assets/886c9502-4407-4aa7-8b63-84035f8cdb8a)
2024-09-26 11:39:05 +03:00
Mateusz Kwasniewski
823f6330b7
refactor: move getProjectsByUser to read model (#8262) 2024-09-26 09:45:02 +02:00