feat(NocoDB Node): Add new data apis and workspace support (#7329)

- Changed old NocoDB logo with new one
To support new release of [NocoDB
(v0.202.4)](https://github.com/nocodb/nocodb/releases/tag/0.202.4):
- Added a new version(3) to support new data apis and workspaces
- Renamed `project` to `base` for new version (kept labels for old
versions for backwards compatibility)

---------

Signed-off-by: mertmit <mertmit99@gmail.com>
Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
This commit is contained in:
mertmit 2023-11-08 13:04:35 +03:00 committed by GitHub
parent 32b85ba2fe
commit da2d2a83bb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 296 additions and 497 deletions

View file

@ -20,7 +20,7 @@ export class NocoDB implements INodeType {
name: 'nocoDb',
icon: 'file:nocodb.svg',
group: ['input'],
version: [1, 2],
version: [1, 2, 3],
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Read, update, write and delete data from NocoDB',
defaults: {
@ -54,14 +54,14 @@ export class NocoDB implements INodeType {
name: 'authentication',
type: 'options',
options: [
{
name: 'User Token',
value: 'nocoDb',
},
{
name: 'API Token',
value: 'nocoDbApiToken',
},
{
name: 'User Token',
value: 'nocoDb',
},
],
default: 'nocoDb',
},
@ -69,11 +69,6 @@ export class NocoDB implements INodeType {
displayName: 'API Version',
name: 'version',
type: 'options',
displayOptions: {
show: {
'@version': [1],
},
},
isNodeSetting: true,
options: [
{
@ -84,18 +79,22 @@ export class NocoDB implements INodeType {
name: 'v0.90.0 Onwards',
value: 2,
},
{
name: 'v0.200.0 Onwards',
value: 3,
},
],
displayOptions: {
show: {
'@version': [1],
},
},
default: 1,
},
{
displayName: 'API Version',
name: 'version',
type: 'options',
displayOptions: {
show: {
'@version': [2],
},
},
isNodeSetting: true,
options: [
{
@ -106,9 +105,44 @@ export class NocoDB implements INodeType {
name: 'v0.90.0 Onwards',
value: 2,
},
{
name: 'v0.200.0 Onwards',
value: 3,
},
],
displayOptions: {
show: {
'@version': [2],
},
},
default: 2,
},
{
displayName: 'API Version',
name: 'version',
type: 'options',
isNodeSetting: true,
options: [
{
name: 'Before v0.90.0',
value: 1,
},
{
name: 'v0.90.0 Onwards',
value: 2,
},
{
name: 'v0.200.0 Onwards',
value: 3,
},
],
displayOptions: {
show: {
'@version': [3],
},
},
default: 3,
},
{
displayName: 'Resource',
name: 'resource',
@ -172,26 +206,51 @@ export class NocoDB implements INodeType {
methods = {
loadOptions: {
async getProjects(this: ILoadOptionsFunctions) {
async getWorkspaces(this: ILoadOptionsFunctions) {
try {
const requestMethod = 'GET';
const endpoint = '/api/v1/db/meta/projects/';
const endpoint = '/api/v1/workspaces/';
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
} catch (e) {
return [{ name: 'No Workspace', value: 'none' }];
}
},
async getBases(this: ILoadOptionsFunctions) {
const version = this.getNodeParameter('version', 0) as number;
const workspaceId = this.getNodeParameter('workspaceId', 0) as string;
try {
if (workspaceId && workspaceId !== 'none') {
const requestMethod = 'GET';
const endpoint = `/api/v1/workspaces/${workspaceId}/bases/`;
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
} else {
const requestMethod = 'GET';
const endpoint = version === 3 ? '/api/v2/meta/bases/' : '/api/v1/db/meta/projects/';
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
}
} catch (e) {
throw new NodeOperationError(
this.getNode(),
new Error('Error while fetching projects!', { cause: e }),
new Error(`Error while fetching ${version === 3 ? 'bases' : 'projects'}!`, {
cause: e,
}),
);
}
},
// This only supports using the Project ID
// This only supports using the Base ID
async getTables(this: ILoadOptionsFunctions) {
const projectId = this.getNodeParameter('projectId', 0) as string;
if (projectId) {
const version = this.getNodeParameter('version', 0) as number;
const baseId = this.getNodeParameter('projectId', 0) as string;
if (baseId) {
try {
const requestMethod = 'GET';
const endpoint = `/api/v1/db/meta/projects/${projectId}/tables`;
const endpoint =
version === 3
? `/api/v2/meta/bases/${baseId}/tables`
: `/api/v1/db/meta/projects/${baseId}/tables`;
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
} catch (e) {
@ -201,7 +260,10 @@ export class NocoDB implements INodeType {
);
}
} else {
throw new NodeOperationError(this.getNode(), 'No project selected!');
throw new NodeOperationError(
this.getNode(),
`No ${version === 3 ? 'base' : 'project'} selected!`,
);
}
},
},
@ -223,7 +285,7 @@ export class NocoDB implements INodeType {
let endPoint = '';
const projectId = this.getNodeParameter('projectId', 0) as string;
const baseId = this.getNodeParameter('projectId', 0) as string;
const table = this.getNodeParameter('table', 0) as string;
if (resource === 'row') {
@ -231,9 +293,11 @@ export class NocoDB implements INodeType {
requestMethod = 'POST';
if (version === 1) {
endPoint = `/nc/${projectId}/api/v1/${table}/bulk`;
endPoint = `/nc/${baseId}/api/v1/${table}/bulk`;
} else if (version === 2) {
endPoint = `/api/v1/db/data/bulk/noco/${projectId}/${table}`;
endPoint = `/api/v1/db/data/bulk/noco/${baseId}/${table}`;
} else if (version === 3) {
endPoint = `/api/v2/tables/${table}/records`;
}
const body: IDataObject[] = [];
@ -278,7 +342,7 @@ export class NocoDB implements INodeType {
},
json: JSON.stringify({
api: 'xcAttachmentUpload',
project_id: projectId,
project_id: baseId,
dbAlias: 'db',
args: {},
}),
@ -289,6 +353,8 @@ export class NocoDB implements INodeType {
postUrl = '/dashboard';
} else if (version === 2) {
postUrl = '/api/v1/db/storage/upload';
} else if (version === 3) {
postUrl = '/api/v2/storage/upload';
}
responseData = await apiRequest.call(
@ -296,13 +362,15 @@ export class NocoDB implements INodeType {
'POST',
postUrl,
{},
{ project_id: projectId },
version === 3 ? { base_id: baseId } : { project_id: baseId },
undefined,
{
formData,
},
);
newItem[field.fieldName] = JSON.stringify([responseData]);
newItem[field.fieldName] = JSON.stringify(
Array.isArray(responseData) ? responseData : [responseData],
);
}
}
}
@ -311,13 +379,21 @@ export class NocoDB implements INodeType {
try {
responseData = await apiRequest.call(this, requestMethod, endPoint, body, qs);
// Calculate ID manually and add to return data
let id = responseData[0];
for (let i = body.length - 1; i >= 0; i--) {
body[i].id = id--;
}
if (version === 3) {
for (let i = body.length - 1; i >= 0; i--) {
body[i] = { ...body[i], ...responseData[i] };
}
returnData.push(...body);
returnData.push(...body);
} else {
// Calculate ID manually and add to return data
let id = responseData[0];
for (let i = body.length - 1; i >= 0; i--) {
body[i].id = id--;
}
returnData.push(...body);
}
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ error: error.toString() });
@ -331,9 +407,16 @@ export class NocoDB implements INodeType {
let primaryKey = 'id';
if (version === 1) {
endPoint = `/nc/${projectId}/api/v1/${table}/bulk`;
endPoint = `/nc/${baseId}/api/v1/${table}/bulk`;
} else if (version === 2) {
endPoint = `/api/v1/db/data/bulk/noco/${projectId}/${table}`;
endPoint = `/api/v1/db/data/bulk/noco/${baseId}/${table}`;
primaryKey = this.getNodeParameter('primaryKey', 0) as string;
if (primaryKey === 'custom') {
primaryKey = this.getNodeParameter('customPrimaryKey', 0) as string;
}
} else if (version === 3) {
endPoint = `/api/v2/tables/${table}/records`;
primaryKey = this.getNodeParameter('primaryKey', 0) as string;
if (primaryKey === 'custom') {
@ -349,13 +432,7 @@ export class NocoDB implements INodeType {
}
try {
responseData = (await apiRequest.call(
this,
requestMethod,
endPoint,
body,
qs,
)) as number[];
responseData = (await apiRequest.call(this, requestMethod, endPoint, body, qs)) as any[];
if (version === 1) {
returnData.push(...items.map((item) => item.json));
} else if (version === 2) {
@ -377,6 +454,8 @@ export class NocoDB implements INodeType {
};
}),
);
} else if (version === 3) {
returnData.push(...responseData);
}
} catch (error) {
if (this.continueOnFail()) {
@ -394,9 +473,11 @@ export class NocoDB implements INodeType {
requestMethod = 'GET';
if (version === 1) {
endPoint = `/nc/${projectId}/api/v1/${table}`;
endPoint = `/nc/${baseId}/api/v1/${table}`;
} else if (version === 2) {
endPoint = `/api/v1/db/data/noco/${projectId}/${table}`;
endPoint = `/api/v1/db/data/noco/${baseId}/${table}`;
} else if (version === 3) {
endPoint = `/api/v2/tables/${table}/records`;
}
returnAll = this.getNodeParameter('returnAll', 0);
@ -421,7 +502,7 @@ export class NocoDB implements INodeType {
} else {
qs.limit = this.getNodeParameter('limit', 0);
responseData = await apiRequest.call(this, requestMethod, endPoint, {}, qs);
if (version === 2) {
if (version === 2 || version === 3) {
responseData = responseData.list;
}
}
@ -468,9 +549,11 @@ export class NocoDB implements INodeType {
const id = this.getNodeParameter('id', i) as string;
if (version === 1) {
endPoint = `/nc/${projectId}/api/v1/${table}/${id}`;
endPoint = `/nc/${baseId}/api/v1/${table}/${id}`;
} else if (version === 2) {
endPoint = `/api/v1/db/data/noco/${projectId}/${table}/${id}`;
endPoint = `/api/v1/db/data/noco/${baseId}/${table}/${id}`;
} else if (version === 3) {
endPoint = `/api/v2/tables/${table}/records/${id}`;
}
responseData = await apiRequest.call(this, requestMethod, endPoint, {}, qs);
@ -542,22 +625,24 @@ export class NocoDB implements INodeType {
let primaryKey = 'id';
if (version === 1) {
endPoint = `/nc/${projectId}/api/v1/${table}/bulk`;
endPoint = `/nc/${baseId}/api/v1/${table}/bulk`;
requestMethod = 'PUT';
} else if (version === 2) {
endPoint = `/api/v1/db/data/bulk/noco/${projectId}/${table}`;
endPoint = `/api/v1/db/data/bulk/noco/${baseId}/${table}`;
primaryKey = this.getNodeParameter('primaryKey', 0) as string;
if (primaryKey === 'custom') {
primaryKey = this.getNodeParameter('customPrimaryKey', 0) as string;
}
} else if (version === 3) {
endPoint = `/api/v2/tables/${table}/records`;
}
const body: IDataObject[] = [];
for (let i = 0; i < items.length; i++) {
const id = this.getNodeParameter('id', i) as string;
const newItem: IDataObject = { [primaryKey]: id };
const id = version === 3 ? null : (this.getNodeParameter('id', i) as string);
const newItem: IDataObject = version === 3 ? {} : { [primaryKey]: id };
const dataToSend = this.getNodeParameter('dataToSend', i) as
| 'defineBelow'
| 'autoMapInputData';
@ -596,7 +681,7 @@ export class NocoDB implements INodeType {
},
json: JSON.stringify({
api: 'xcAttachmentUpload',
project_id: projectId,
project_id: baseId,
dbAlias: 'db',
args: {},
}),
@ -606,19 +691,24 @@ export class NocoDB implements INodeType {
postUrl = '/dashboard';
} else if (version === 2) {
postUrl = '/api/v1/db/storage/upload';
} else if (version === 3) {
postUrl = '/api/v2/storage/upload';
}
responseData = await apiRequest.call(
this,
'POST',
postUrl,
{},
{ project_id: projectId },
version === 3 ? { base_id: baseId } : { project_id: baseId },
undefined,
{
formData,
},
);
newItem[field.fieldName] = JSON.stringify([responseData]);
newItem[field.fieldName] = JSON.stringify(
Array.isArray(responseData) ? responseData : [responseData],
);
}
}
}
@ -626,13 +716,7 @@ export class NocoDB implements INodeType {
}
try {
responseData = (await apiRequest.call(
this,
requestMethod,
endPoint,
body,
qs,
)) as number[];
responseData = (await apiRequest.call(this, requestMethod, endPoint, body, qs)) as any[];
if (version === 1) {
returnData.push(...body);
@ -655,6 +739,12 @@ export class NocoDB implements INodeType {
};
}),
);
} else if (version === 3) {
for (let i = body.length - 1; i >= 0; i--) {
body[i] = { ...body[i], ...responseData[i] };
}
returnData.push(...body);
}
} catch (error) {
if (this.continueOnFail()) {

View file

@ -4,6 +4,40 @@ export const operationFields: INodeProperties[] = [
// ----------------------------------
// Shared
// ----------------------------------
{
displayName: 'Workspace Name or ID',
name: 'workspaceId',
type: 'options',
default: 'none',
displayOptions: {
show: {
version: [3],
},
},
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getWorkspaces',
},
},
{
displayName: 'Base Name or ID',
name: 'projectId',
type: 'options',
default: '',
displayOptions: {
show: {
version: [3],
},
},
required: true,
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
typeOptions: {
loadOptionsDependsOn: ['workspaceId'],
loadOptionsMethod: 'getBases',
},
},
{
displayName: 'Project ID',
name: 'projectId',
@ -31,7 +65,7 @@ export const operationFields: INodeProperties[] = [
description:
'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
typeOptions: {
loadOptionsMethod: 'getProjects',
loadOptionsMethod: 'getBases',
},
},
{
@ -41,7 +75,7 @@ export const operationFields: INodeProperties[] = [
default: '',
displayOptions: {
show: {
version: [2],
version: [2, 3],
},
},
required: true,
@ -91,10 +125,42 @@ export const operationFields: INodeProperties[] = [
],
displayOptions: {
show: {
version: [1, 2],
operation: ['delete', 'update'],
},
},
},
{
displayName: 'Primary Key Type',
name: 'primaryKey',
type: 'options',
default: 'id',
options: [
{
name: 'Default',
value: 'id',
description:
'Default, added when table was created from UI by those options: Create new table / Import from Excel / Import from CSV',
},
{
name: 'Imported From Airtable',
value: 'ncRecordId',
description: 'Select if table was imported from Airtable',
},
{
name: 'Custom',
value: 'custom',
description:
'When connecting to existing external database as existing primary key field is retained as is, enter the name of the primary key field below',
},
],
displayOptions: {
show: {
version: [3],
operation: ['delete'],
},
},
},
{
displayName: 'Field Name',
name: 'customPrimaryKey',
@ -102,11 +168,25 @@ export const operationFields: INodeProperties[] = [
default: '',
displayOptions: {
show: {
version: [1, 2],
operation: ['delete', 'update'],
primaryKey: ['custom'],
},
},
},
{
displayName: 'Field Name',
name: 'customPrimaryKey',
type: 'string',
default: '',
displayOptions: {
show: {
version: [3],
operation: ['delete'],
primaryKey: ['custom'],
},
},
},
{
displayName: 'Row ID Value',
name: 'id',
@ -116,10 +196,25 @@ export const operationFields: INodeProperties[] = [
description: 'The value of the ID field',
displayOptions: {
show: {
version: [1, 2],
operation: ['delete', 'get', 'update'],
},
},
},
{
displayName: 'Row ID Value',
name: 'id',
type: 'string',
default: '',
required: true,
description: 'The value of the ID field',
displayOptions: {
show: {
version: [3],
operation: ['delete', 'get'],
},
},
},
// ----------------------------------
// delete
// ----------------------------------
@ -195,6 +290,17 @@ export const operationFields: INodeProperties[] = [
default: {},
placeholder: 'Add Option',
options: [
{
displayName: 'View ID',
name: 'viewId',
type: 'string',
typeOptions: {
multipleValues: false,
},
default: '',
placeholder: 'View ID',
description: 'The select fields of the returned rows',
},
{
displayName: 'Fields',
name: 'fields',
@ -207,14 +313,6 @@ export const operationFields: INodeProperties[] = [
placeholder: 'Name',
description: 'The select fields of the returned rows',
},
{
displayName: 'Filter By Formula',
name: 'where',
type: 'string',
default: '',
placeholder: '(name,like,example%)~or(name,eq,test)',
description: 'A formula used to filter rows',
},
{
displayName: 'Sort',
name: 'sort',
@ -260,6 +358,14 @@ export const operationFields: INodeProperties[] = [
},
],
},
{
displayName: 'Filter By Formula',
name: 'where',
type: 'string',
default: '',
placeholder: '(name,like,example%)~or(name,eq,test)',
description: 'A formula used to filter rows',
},
],
},
// ----------------------------------
@ -322,6 +428,30 @@ export const operationFields: INodeProperties[] = [
default: 'defineBelow',
description: 'Whether to insert the input data this node receives in the new row',
},
{
displayName:
"In this mode, make sure the incoming data fields are named the same as the columns in NocoDB. (Use a 'set' node before this node to change them if required.)",
name: 'info',
type: 'notice',
default: '',
displayOptions: {
show: {
dataToSend: ['autoMapInputData'],
},
},
},
{
displayName: 'This operation requires the primary key to be included for each row.',
name: 'info',
type: 'notice',
default: '',
displayOptions: {
show: {
operation: ['update'],
version: [3],
},
},
},
{
displayName: 'Inputs to Ignore',
name: 'inputsToIgnore',

View file

@ -1,425 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="460px" height="460px" viewBox="0 0 460 460" enable-background="new 0 0 460 460" xml:space="preserve"> <image id="image0" width="460" height="460" x="0" y="0"
href="data:image/png;base64,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
OjAwTpa81QAAAABJRU5ErkJggg==" />
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="200" height="200" rx="25" fill="#3D43D5"/>
<path d="M38 93.9073L67.7602 122.913V168.833H38V93.9073ZM163 32.2418V157.659C163 165.737 158.502 169 151.258 169C149.925 169 147.533 168.499 145.465 166.498L38 65.3278V42.8413C38 34.7625 41.3629 31.5 49.7232 31.5C51.056 31.5 53.7333 32.0193 55.7823 34.0023L133.221 105.925V32.2418H163Z" fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 465 B