-
Notifications
You must be signed in to change notification settings - Fork 9.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(core): Support create, delete, edit role for users in Public API #10279
feat(core): Support create, delete, edit role for users in Public API #10279
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As long as the API looks stable to you, we can merge this, and fix any implementation issues later.
createUser: [ | ||
globalScope('user:create'), | ||
async (req: Create, res: Response) => { | ||
const usersInvited = await Container.get(InvitationController).inviteUser(req); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should not be using private controllers in the public API. but I guess since all the payload validation is still in the controllers, we'd have to duplicate a lot of code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now the tests will ensure we catch any unexpected changes to the Public API.
@@ -18,3 +18,53 @@ get: | |||
$ref: '../schemas/userList.yml' | |||
'401': | |||
$ref: '../../../../shared/spec/responses/unauthorized.yml' | |||
post: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should look into migrating the public api to a similar pattern using decorators and DI, and then generate the openapi spec file from the decorator metadata instead (if possible).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
100%! For context, we discussed internally and are aware of all the problems of the Public API, but Enterprise customers need this so we're expanding it as it is for now.
if (withApiKey) { | ||
return await addApiKey(await createUser({ role: 'global:member' })); | ||
} | ||
|
||
return await createUser({ role: 'global:member' }); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (withApiKey) { | |
return await addApiKey(await createUser({ role: 'global:member' })); | |
} | |
return await createUser({ role: 'global:member' }); | |
const member = await createUser({ role: 'global:member' }); | |
if (withApiKey) { | |
return await addApiKey(member); | |
} | |
return member; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add this in the cleanup PR 👍🏻
Test summaryRun details
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Cloud |
✅ All Cypress E2E specs passed |
* master: refactor(core): Clean up event relays (no-changelog) (#10284) fix(editor): Fix execution retry button (#10275) feat(core): Show sub-node error on the logs pane. Open logs pane on sub-node error (#10248) refactor(core): Move instanceRole to InstanceSettings (no-changelog) (#10242) feat(core): Allow filtering executions and users by project in Public API (#10250) fix(core): Make execution and its data creation atomic (#10276) refactor(core): Mark schema env vars used by cloud hooks (no-changelog) (#10283) ci: Fix DB tests (no-changelog) (#10282) feat(core): Support create, delete, edit role for users in Public API (#10279) refactor(core): Decouple post workflow execute event from internal hooks (no-changelog) (#10280) feat(core): Allow transferring credentials in Public API (#10259) feat(core): Support create, read, update, delete projects in Public API (#10269) ci: Introduce lint rule `no-type-unsafe-event-emitter` (no-changelog) (#10254) fix(core): Surface enterprise trial error message (#10267) fix(editor): Enable moving resources only if team projects are available by the license (#10271) fix(core): Upgrade tournament to address some XSS vulnerabilities (#10277) # Conflicts: # packages/cli/src/Server.ts
Got released with |
https://linear.app/n8n/issue/PAY-1801