Skip to main content

Security Rules

The API for security rules can be invoked via commonService.

Permission Category

The following first 4 types are simple permissions, while CUSTOM is specific to security rules.

  • READONLY: Readable by all users, writable only by the creator and administrators.
  • PRIVATE: Readable and writable only by the creator and administrators.
  • ADMINWRITE: Readable by all users, writable only by administrators.
  • ADMINONLY: Readable and writable only by administrators
  • CUSTOM: Custom security rules

Obtaining Database Simple Permissions

1. API Description

API Feature: Obtain Database Simple Permissions

API declaration: manager.commonService().call({Action: 'DescribeDatabaseACL',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name
EnvIdRequiredStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
AclTagNoStringPermission category

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudbaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "DescribeDatabaseACL",
Param: {
CollectionName: "xxx",
EnvId: cloudbaseConfig.envId
}
});

console.log(res.AclTag); // Log permission category
}

test();

Modifying Database Simple Permissions

1. API Description

API feature: Modifying Database Simple Permissions

API declaration: manager.commonService().call({Action: 'ModifyDatabaseACL',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name
AclTagRequiredStringPermission category READONLY PRIVATE ADMINWRITE ADMINONLY
EnvIdRequiredStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdStringRequiredUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "ModifyDatabaseACL",
Param: {
CollectionName: "xxx",
EnvId: cloudbaseConfig.envId,
AclTag: "PRIVATE"
}
});
console.log(res);
}

test();

Setting Database Security Rules

1. API Description

API Feature: Setting Database Security Rules

API declaration: manager.commonService().call({Action: 'ModifySafeRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name
EnvIdYesStringEnvironment ID
AclTagYesStringPermission category
RuleNoStringRequired when the permission category is set to CUSTOM (Database Security Rules Documentation)

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "ModifySafeRule",
Param: {
CollectionName: "coll-1",
AclTag: "CUSTOM",
EnvId: "xxx",
Rule: JSON.stringify({
read: true,
write: "doc._openid == auth.openid"
})
}
});
console.log(res);
}

test();

Querying Database Security Rules

1. API Description

API Feature: Querying Database Security Rules

API declaration: manager.commonService().call({Action: 'DescribeSafeRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
CollectionNameRequiredStringCollection name
EnvIdRequiredStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
AclTagRequiredStringPermission category
RuleRequiredString or nullSecurity rule

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "DescribeSafeRule",
Param: {
CollectionName: "coll-1",
EnvId: cloudbaseConfig.envId
}
});
console.log(res.AclTag);
console.log(res.Rule);
}
test();

Setting SCF Security Rules

1. API Description

API feature: Setting SCF Security Rules

API declaration: manager.commonService().call({Action: 'ModifySecurityRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
AclTagYesStringEnter CUSTOM
EnvIdYesStringEnvironment ID
ResourceTypeYesStringEnter FUNCTION
RuleRequiredStringRefer to SCF security rules documentation

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
});

const { env } = manager;

async function test() {
const res = await manager.commonService().call({
Action: "ModifySecurityRule",
Param: {
AclTag: "CUSTOM",
EnvId: envId,
ResourceType: "FUNCTION",
Rule: JSON.stringify({
"*": {
invoke: true
}
})
}
});
console.log(res);
}
test();

Querying SCF Security Rules

1. API Description

API feature: Querying SCF Security Rules

API declaration: manager.commonService().call({Action: 'DescribeSecurityRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
ResourceTypeYesStringEnter FUNCTION
EnvIdYesStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
AclTagRequiredStringPermission category
RuleRequiredString or nullSecurity rule

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "DescribeSecurityRule",
Param: {
EnvId: "hello-tcb-9glo12vd5bd3bd0d",
ResourceType: "FUNCTION"
}
});
console.log(res.AclTag);
console.log(res.Rule);
}

test();

Setting Storage Security Rules

1. API Description

API Feature: Setting Storage Security Rules

API declaration: manager.commonService().call({Action: 'ModifyStorageSafeRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
BucketYesStringBucket name
AclTagYesStringPermission category
EnvIdYesStringEnvironment ID
RuleNoStringSet this field when the permission category is CUSTOM (Storage Security Rules Documentation)

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request

4. Sample Code

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
});

const { env } = manager;

// First obtain the bucket name
const {
EnvInfo: { Storages }
} = await env.getEnvInfo();
const { Bucket } = Storages[0];

async function test() {
const res = await manager.commonService().call({
Action: "ModifyStorageSafeRule",
Param: {
Bucket,
AclTag: "CUSTOM",
EnvId: envId,
Rule: JSON.stringify({
read: true,
write: "resource.openid == auth.uid"
})
}
});
console.log(res);
}
test();

Querying Storage Security Rules

1. API Description

API Feature: Querying Storage Security Rules

API declaration: manager.commonService().call({Action: 'DescribeStorageSafeRule',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
BucketYesStringBucket name
EnvIdYesStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
AclTagRequiredStringPermission category
RuleRequiredString or nullSecurity rule

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
const res = await manager.commonService().call({
Action: "DescribeStorageSafeRule",
Param: {
Bucket: "xxx",
EnvId: cloudBaseConfig.envId
}
});
console.log(res.AclTag);
console.log(res.Rule);
}

test();

Query Storage Security Rules Modification Asynchronous Task Status

1. API Description

API feature: Query the status of the asynchronous task for modifying storage security rules

API declaration: manager.commonService().call({Action: 'DescribeCDNChainTask',Param: {}}): Promise<Object>

⚠️ Starting from version 3.0.0, commonService is used as a method in this API with request parameters (service?: string, version?: string), which is an incompatible change.

2. Input Parameters

FieldRequiredTypeDescription
ActionYesStringAPI name
ParamYesObjectAPI parameters

Param Field Description

FieldRequiredTypeDescription
BucketYesStringBucket name
EnvIdYesStringEnvironment ID

3. Return Results

FieldRequiredTypeDescription
RequestIdRequiredStringUnique identifier of the request
StatusRequiredStringStatus of the hotlink protection on/off task. WAITING, PENDING, FINISHED, ERROR

4. Sample Code

const cloudbaseConfig = {
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // TCB environment ID, which can be obtained from the Tencent Cloud TCB console
};

let manager = new CloudBase(cloudBaseConfig);

async function test() {
// Obtain environment information and get bucket
const {
EnvInfo: { Storages }
} = await env.getEnvInfo();
console.log(Storages);
const { Bucket } = Storages[0];
const res = await manager.commonService().call({
Action: "ModifyStorageSafeRule",
Param: {
Bucket,
AclTag: "CUSTOM",
EnvId: envId,
Rule: JSON.stringify({
read: true,
write: "resource.openid == auth.uid"
})
}
});
console.log(res);
expect(res.RequestId !== undefined).toBe(true);

let status = "";
do {
status = (
await commonService.call({
Action: "DescribeCDNChainTask",
Param: {
Bucket,
EnvId: envId
}
})
).Status;
console.log(status);
} while (status !== "FINISHED" && status !== "ERROR");
}

test();