Browse Source

Merge pull request #9543 from nocodb/nc-fix/swagger-base-pw

Nc fix/swagger base pw
pull/9557/head
Pranav C 2 months ago committed by GitHub
parent
commit
bece680fb6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 12
      packages/nocodb/src/schema/swagger-v2.json
  2. 11
      packages/nocodb/src/schema/swagger.json
  3. 6
      packages/nocodb/src/services/api-docs/swagger/swagger-base.json
  4. 6
      packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json
  5. 2
      tests/playwright/setup/demoTable.ts
  6. 15
      tests/playwright/setup/index.ts
  7. 2
      tests/playwright/tests/db/features/swagger.spec.ts
  8. 14
      tests/playwright/tests/db/usersAccounts/accountTokenManagement.spec.ts

12
packages/nocodb/src/schema/swagger-v2.json

@ -22535,23 +22535,23 @@
}
},
"parameters": {
"xc-auth": {
"name": "xc-auth",
"xc-token": {
"name": "xc-token",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"description": "Auth Token is a JWT Token generated based on the logged-in user. By default, the token is only valid for 10 hours. However, you can change the value by defining it using environment variable NC_JWT_EXPIRES_IN."
"description": "API Token. Refer [here](https://docs.nocodb.com/account-settings/api-tokens/) to know more"
},
"xc-token": {
"name": "xc-token",
"xc-auth": {
"name": "xc-auth",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"description": "API Token. Refer [here](https://docs.nocodb.com/account-settings/api-tokens/) to know more"
"description": "Auth Token is a JWT Token generated based on the logged-in user. By default, the token is only valid for 10 hours. However, you can change the value by defining it using environment variable NC_JWT_EXPIRES_IN."
}
}
}

11
packages/nocodb/src/schema/swagger.json

@ -27626,10 +27626,19 @@
}
},
"parameters": {
"xc-token": {
"name": "xc-token",
"in": "header",
"required": true,
"schema": {
"type": "string"
},
"description": "API Token. Refer [here](https://docs.nocodb.com/account-settings/api-tokens/) to know more"
},
"xc-auth": {
"name": "xc-auth",
"in": "header",
"required": false,
"required": true,
"schema": {
"type": "string"
},

6
packages/nocodb/src/services/api-docs/swagger/swagger-base.json

@ -71,12 +71,6 @@
}
},
"securitySchemes": {
"xcAuth": {
"type": "apiKey",
"in": "header",
"name": "xc-auth",
"description": "JWT access token"
},
"xcToken": {
"type": "apiKey",
"in": "header",

6
packages/nocodb/src/services/api-docs/swaggerV2/swagger-base.json

@ -70,12 +70,6 @@
}
},
"securitySchemes": {
"xcAuth": {
"type": "apiKey",
"in": "header",
"name": "xc-auth",
"description": "JWT access token"
},
"xcToken": {
"type": "apiKey",
"in": "header",

2
tests/playwright/setup/demoTable.ts

@ -175,7 +175,7 @@ async function createDemoTable({
api = new Api({
baseURL: `http://localhost:8080/`,
headers: {
'xc-auth': context.token,
'xc-token': context.apiToken,
},
});

15
tests/playwright/setup/index.ts

@ -149,6 +149,7 @@ const workerCount = [0, 0, 0, 0, 0, 0, 0, 0];
export interface NcContext {
base: BaseType;
token: string;
apiToken: string;
dbType?: string;
workerId?: string;
rootUser: UserType & { password: string };
@ -208,6 +209,17 @@ async function localInit({
},
});
let apiToken = null;
const apiTokens = await api.orgTokens.list();
if (apiTokens.list.length > 0) {
apiToken = apiTokens.list[0].token;
} else {
const { token: createdToken } = await api.orgTokens.create({ description: 'test' });
apiToken = createdToken;
}
// const workspaceTitle_old = `ws_pgExtREST${+workerId - 1}`;
const workspaceTitle = `ws_pgExtREST${workerId}`;
const baseTitle = `pgExtREST${workerId}`;
@ -363,7 +375,7 @@ async function localInit({
// get current user information
const user = await api.auth.me();
return { data: { base, user, workspace, token, api }, status: 200 };
return { data: { base, user, workspace, token, api, apiToken }, status: 200 };
} catch (e) {
console.error(`Error resetting base: ${process.env.TEST_PARALLEL_INDEX}`, e);
return { data: {}, status: 500 };
@ -497,6 +509,7 @@ const setup = async ({
return {
base,
token,
apiToken: response.data.apiToken,
dbType,
workerId,
rootUser,

2
tests/playwright/tests/db/features/swagger.spec.ts

@ -24,7 +24,7 @@ test.describe('Swagger', () => {
// authorize with token information
await swagger.locator('.btn.authorize').click();
await swagger.locator('.modal-ux').locator('input').first().fill(context.token);
await swagger.locator('.modal-ux').locator('input').first().fill(context.apiToken);
await swagger.locator('.btn.modal-btn.auth.authorize.button').first().click();
await swagger.locator('.close-modal').click();

14
tests/playwright/tests/db/usersAccounts/accountTokenManagement.spec.ts

@ -2,6 +2,7 @@ import { test } from '@playwright/test';
import { AccountPage } from '../../../pages/Account';
import { AccountTokenPage } from '../../../pages/Account/Token';
import setup, { unsetup } from '../../../setup';
import { Api } from 'nocodb-sdk';
test.describe('Token Management', () => {
let accountTokenPage: AccountTokenPage;
@ -20,6 +21,19 @@ test.describe('Token Management', () => {
});
test('Create and Delete token', async () => {
// Init SDK using token
const api = new Api({
baseURL: `http://localhost:8080/`,
headers: {
'xc-auth': context.token,
},
});
const apiTokens = await api.orgTokens.list();
if (apiTokens.list.length > 0) {
await api.orgTokens.delete(apiTokens.list[0].id);
}
test.slow();
const parallelId = process.env.TEST_PARALLEL_INDEX ?? '0';
await accountTokenPage.goto();

Loading…
Cancel
Save