* refactor: add schemas to user admin controller
* refactor: remove unused SessionService
* refactor: fix search query type confusion
* refactor: add schemas to user controller (#1693)
* refactor: add schemas to user controller
* refactor: fix getAllUserSplashes method name
* refactor: name and email should not be required on create
* refactor: only some user fields may be updated
* refactor: should not require any fields on user update (#1730)
* refactor: send 400 instead of 500 on missing username and email
* refactor: should not require any fields for user update
* refactor: note that earlier versions required name or email
* refactor: merge roleDescriptionSchema and roleSchema
* Docs: Update description for create + update user
This change updates the documentation for the user creation API,
fixing errors mentioned in #1717:
- it's either `username` or `email` that is required on creation.
`name` is not required.
- `name` is the only required field when updating a user.
* docs: Fix overzealous prettier formatting
* docs: updated requirements for put: name OR email
* docs: add all /events endpoints and query params
* docs: events page skeleton structure
* docs: correct description of event payloads
* docs: add table with event properties.
* docs: remove duplicate table.
* docs: sort property table
* docs: more work on adding events: feature events
* docs: add examples for most feature events
Still missing are: events that require imports, and
feature-project-change
* docs: scaffold out all events descriptions
* docs: normalize casing
* docs: add brief descriptions to strategy and context events
* docs: Add remaining non-import event descriptions and examples
* docs: add code sample annotations for all example events.
* docs: remove all references to myself
* docs: change "toggle" -> "feature", adjust headings
The headings aren't semantic for this doc yet. We'll need to create a
new document for this.
* docs: update event type description table
* docs: change header level of event type section
* docs: add details around feature-project-change event
* docs: add import type events
* docs: use a better `createdBy` name
* docs: "sort" events so that they're in a consistent order.
* docs: remove reference to ID in addon-config-created event
* fix: drop-environments data.name all-projects -> all-environments
This is probably a bug. Should be double checked.
* docs: clarify that `data.name` is always `all-x` on drop events
* Apply suggestions from code review
Co-authored-by: sighphyre <liquidwicked64@gmail.com>
Co-authored-by: sighphyre <liquidwicked64@gmail.com>
Adds an explanation of what the various properties in the payload
object to the `user-admin` endpoint does. Most seem fairly
self-explanatory, but I'm not entirely sure what `sendEmail` does.
Requires validation by a third party before merging.
* docs: add docs for impression data
* fix: update wording
* Update website/docs/advanced/impression_data.md
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
* Update website/docs/advanced/impression_data.md
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
* docs: use hyphen instead of underscore in file name and title/slug
We've been very inconsistent with our use of separators previously
(we should try and find a standard). Hyphens are most common online,
so I've switched to that instead.
* docs: use syntax highlighting for shell commands
* docs: start outlining impression data restructure.
* docs: Add impression data info to API: create toggles
* docs: Add impression data row to compatibility matrix
* docs: restructures the impression data reference doc.
* chore: remove question callout in source material
* docs: add redirect for `impression_data` -> 'impression-data'
* docs: Add sdk availability to availability note
* chore: Fix broken doc paths.
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
Add a new .../:feature/variants API
This adds
- `GET /api/admin/projects/:projectId/features/:featureName/variants` which returns
```json
{ version: '1', variants: IVariant[] }
```
- `PATCH /api/admin/projects/:projectId/features/:featureName/variants` which accepts a json patch set and updates the feature's variants field and then returns
```json
{ version: '1', variants: IVariant[] }
```
- `PUT /api/admin/projects/:projectId/features/:featureName/variants`
which accepts a IVariant[] and overwrites the current variants list for the feature defined in :featureName and returns
```json
{ version: '1', variants: IVariant[] }
- This also makes sure the total weight of all variants is == 1000
- Validates that there is at least 1 'variable' variant if there are variants
- Validates that 'fix' variants total weight can't exceed 1000
- Adds tests for all these invariants.
Co-authored-by: Simon Hornby <simon@getunleash.ai>