mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 04:07:31 +00:00
feat: add quotas (#4779)
adds possibilities to cap authenticated requests and execution seconds of actions on a defined intervall
This commit is contained in:
@@ -3,20 +3,21 @@ import { searchSomething } from './search';
|
||||
import { API } from './types';
|
||||
import { host } from '../login/users';
|
||||
import { requestHeaders } from './apiauth';
|
||||
import { Context } from 'support/commands';
|
||||
|
||||
export function ensureOrgExists(api: API, name: string): Cypress.Chainable<number> {
|
||||
export function ensureOrgExists(ctx: Context, name: string) {
|
||||
return ensureSomething(
|
||||
api,
|
||||
ctx.api,
|
||||
() =>
|
||||
searchSomething(
|
||||
api,
|
||||
encodeURI(`${api.mgmtBaseURL}/global/orgs/_by_domain?domain=${name}.${host(Cypress.config('baseUrl'))}`),
|
||||
ctx.api,
|
||||
encodeURI(`${ctx.api.mgmtBaseURL}/global/orgs/_by_domain?domain=${name}.${host(Cypress.config('baseUrl'))}`),
|
||||
'GET',
|
||||
(res) => {
|
||||
return { entity: res.org, id: res.org?.id, sequence: parseInt(<string>res.org?.details?.sequence) };
|
||||
},
|
||||
),
|
||||
() => `${api.mgmtBaseURL}/orgs`,
|
||||
() => `${ctx.api.mgmtBaseURL}/orgs`,
|
||||
'POST',
|
||||
{ name: name },
|
||||
(org) => org?.name === name,
|
||||
@@ -24,13 +25,13 @@ export function ensureOrgExists(api: API, name: string): Cypress.Chainable<numbe
|
||||
);
|
||||
}
|
||||
|
||||
export function isDefaultOrg(api: API, orgId: number): Cypress.Chainable<boolean> {
|
||||
export function isDefaultOrg(ctx: Context, orgId: string): Cypress.Chainable<boolean> {
|
||||
console.log('huhu', orgId);
|
||||
return cy
|
||||
.request({
|
||||
method: 'GET',
|
||||
url: encodeURI(`${api.mgmtBaseURL}/iam`),
|
||||
headers: requestHeaders(api, orgId),
|
||||
url: encodeURI(`${ctx.api.mgmtBaseURL}/iam`),
|
||||
headers: requestHeaders(ctx.api, orgId),
|
||||
})
|
||||
.then((res) => {
|
||||
const { defaultOrgId } = res.body;
|
||||
@@ -39,12 +40,12 @@ export function isDefaultOrg(api: API, orgId: number): Cypress.Chainable<boolean
|
||||
});
|
||||
}
|
||||
|
||||
export function ensureOrgIsDefault(api: API, orgId: number): Cypress.Chainable<boolean> {
|
||||
export function ensureOrgIsDefault(ctx: Context, orgId: string): Cypress.Chainable<boolean> {
|
||||
return cy
|
||||
.request({
|
||||
method: 'GET',
|
||||
url: encodeURI(`${api.mgmtBaseURL}/iam`),
|
||||
headers: requestHeaders(api, orgId),
|
||||
url: encodeURI(`${ctx.api.mgmtBaseURL}/iam`),
|
||||
headers: requestHeaders(ctx.api, orgId),
|
||||
})
|
||||
.then((res) => {
|
||||
return res.body;
|
||||
@@ -56,8 +57,8 @@ export function ensureOrgIsDefault(api: API, orgId: number): Cypress.Chainable<b
|
||||
return cy
|
||||
.request({
|
||||
method: 'PUT',
|
||||
url: `${api.adminBaseURL}/orgs/default/${orgId}`,
|
||||
headers: requestHeaders(api, orgId),
|
||||
url: `${ctx.api.adminBaseURL}/orgs/default/${orgId}`,
|
||||
headers: requestHeaders(ctx.api, orgId),
|
||||
failOnStatusCode: true,
|
||||
followRedirect: false,
|
||||
})
|
||||
@@ -69,8 +70,8 @@ export function ensureOrgIsDefault(api: API, orgId: number): Cypress.Chainable<b
|
||||
});
|
||||
}
|
||||
|
||||
export function getOrgUnderTest(api: API): Cypress.Chainable<number> {
|
||||
return searchSomething(api, `${api.mgmtBaseURL}/orgs/me`, 'GET', (res) => {
|
||||
export function getOrgUnderTest(ctx: Context): Cypress.Chainable<number> {
|
||||
return searchSomething(ctx.api, `${ctx.api.mgmtBaseURL}/orgs/me`, 'GET', (res) => {
|
||||
return { entity: res.org, id: res.org.id, sequence: parseInt(<string>res.org.details.sequence) };
|
||||
}).then((res) => res.entity.id);
|
||||
}
|
||||
|
Reference in New Issue
Block a user