Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions services/bin/octobus-tentacles.js
Original file line number Diff line number Diff line change
Expand Up @@ -265,10 +265,9 @@ const services = {
entryFile: "../wd__k01/bin/wd-k01.js",
serviceModule: "../wd__k01/src/service.js",
},
"opencti": {
entryFile: "../filigran__opencti/bin/opencti.js",
serviceModule: "../filigran__opencti/src/service.js",
},
"tencent-ssl": {
Comment thread
monkeyscan[bot] marked this conversation as resolved.
entryFile: "../tencent__ssl/bin/tencent-ssl.js",
serviceModule: "../tencent__ssl/src/service.js",
};

const serviceNames = Object.keys(services);
Expand Down
7 changes: 5 additions & 2 deletions services/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@
"volcengine-cloud-firewall": "bin/volcengine-cloud-firewall.js",
"wangsu-label-ip": "bin/wangsu-label-ip.js",
"wd-k01": "bin/wd-k01.js",
"opencti": "bin/opencti.js"
"opencti": "bin/opencti.js",
"tencent-ssl": "bin/tencent-ssl.js"
},
"files": [
"bin/aliyun-waf3.js",
Expand Down Expand Up @@ -206,7 +207,9 @@
"wangsu__label-ip",
"scripts",
"aliyun__waf3",
"bin/octobus-tentacles.js"
"bin/octobus-tentacles.js",
Comment thread
monkeyscan[bot] marked this conversation as resolved.
"tencent__ssl",
"bin/tencent-ssl.js"
],
"scripts": {
"validate": "node scripts/validate-service-package.mjs",
Expand Down
66 changes: 66 additions & 0 deletions services/tencent__ssl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Tencent SSL Certificate Service Package

OctoBus package for Tencent Cloud SSL Certificate query APIs.

## Device Version

SSL Certificate, API version 2019-12-05, endpoint `ssl.tencentcloudapi.com`

## Authentication

Tencent Cloud API key (SecretId + SecretKey), TC3-HMAC-SHA256 signature.

## Methods

| RPC Method | API Action | Type | Description |
|------------|-----------|------|-------------|
| `ListCertificates` | `DescribeCertificates` | Read | List all SSL certificates in the account |
| `GetCertificate` | `DescribeCertificateDetail` | Read | Get detailed info for a specific certificate |

## Configuration

Config fields (non-sensitive, in `config`):

- `region`: Tencent Cloud region (default: `ap-guangzhou`)
- `timeoutMs`: HTTP timeout in milliseconds (default: 10000)

Secret fields (sensitive, in `secret`):

- `secret_id`: Tencent Cloud API SecretId
- `secretKey` / `secret_key`: Tencent Cloud API SecretKey

## Import

```bash
octobus service import tencent-ssl /path/to/tencent__ssl
```

## Usage

```bash
# Create instance
octobus instance create ssl-test \
--service tencent-ssl \
--secret-json '{"secret_id":"xxx","secretKey":"xxx"}'

# Create capset
octobus capset create ssl-dev --name SSL-Dev
octobus capset add-instance ssl-dev ssl-test

# List certificates via Connect RPC
curl -X POST \
'http://127.0.0.1:9000/capsets/ssl-dev/connect/ssl-test/Tencent_SSL.Tencent_SSL/ListCertificates' \
-H 'Content-Type: application/json' \
-d '{"limit":20}'

# Get certificate detail
curl -X POST \
'http://127.0.0.1:9000/capsets/ssl-dev/connect/ssl-test/Tencent_SSL.Tencent_SSL/GetCertificate' \
-H 'Content-Type: application/json' \
-d '{"certificate_id":"xxx"}'
```

## Risk Notes

- All methods are read-only. No certificates are modified.
- The service is free to use - SSL certificates can be applied for free in Tencent Cloud console.
6 changes: 6 additions & 0 deletions services/tencent__ssl/bin/tencent-ssl.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env node
import { runServiceMain } from '@chaitin-ai/octobus-sdk';

import { service } from '../src/service.js';

runServiceMain(service);
17 changes: 17 additions & 0 deletions services/tencent__ssl/config.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": true,
"properties": {
"region": {
"type": "string",
"description": "Tencent Cloud region (SSL API uses ap-guangzhou by default)."
},
"timeoutMs": {
"type": "integer",
"minimum": 1,
"default": 10000,
"description": "HTTP timeout in milliseconds."
}
}
}
12 changes: 12 additions & 0 deletions services/tencent__ssl/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "tencent-ssl",
"version": "0.0.0",
"private": true,
"type": "module",
"bin": {
"tencent-ssl": "bin/tencent-ssl.js"
},
"dependencies": {
"@chaitin-ai/octobus-sdk": "^0.5.0"
}
}
50 changes: 50 additions & 0 deletions services/tencent__ssl/proto/tencent_ssl.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
syntax = "proto3";

package Tencent_SSL;

import "google/protobuf/wrappers.proto";

option go_package = "miner/grpc-service/Tencent_SSL";

service Tencent_SSL {
rpc ListCertificates(ListCertificatesRequest) returns (ListCertificatesResponse) {}
rpc GetCertificate(GetCertificateRequest) returns (GetCertificateResponse) {}
}

message ListCertificatesRequest {
google.protobuf.Int64Value limit = 1;
google.protobuf.Int64Value offset = 2;
}

message ListCertificatesResponse {
int32 code = 1;
string message = 2;
repeated CertificateItem data = 3;
int32 total = 4;
}

message CertificateItem {
string id = 1;
string domain = 2;
string cert_type = 3;
string status = 4;
string create_time = 5;
string expire_time = 6;
}

message GetCertificateRequest {
string certificate_id = 1;
}

message GetCertificateResponse {
int32 code = 1;
string message = 2;
string id = 3;
string domain = 4;
string cert_type = 5;
string status = 6;
string create_time = 7;
string expire_time = 8;
string subject = 9;
repeated string san = 10;
}
19 changes: 19 additions & 0 deletions services/tencent__ssl/secret.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": true,
"properties": {
"secret_id": {
"type": "string",
"description": "Tencent Cloud API SecretId."
},
"secretKey": {
"type": "string",
"description": "Tencent Cloud API SecretKey."
},
"secret_key": {
"type": "string",
"description": "Alias for secretKey."
}
}
}
33 changes: 33 additions & 0 deletions services/tencent__ssl/service.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema": "chaitin.octobus.service.v1",
"name": "tencent-ssl",
"displayName": "Tencent SSL Certificate",
"description": "OctoBus package for Tencent Cloud SSL Certificate query APIs.",
"runtime": {
"mode": "long-running"
},
"proto": {
"roots": [
"proto"
],
"files": [
"proto/tencent_ssl.proto"
]
},
"configSchema": "config.schema.json",
"secretSchema": "secret.schema.json",
"sdk": {
"cli": {
"commands": {
"Tencent_SSL.Tencent_SSL/ListCertificates": {
"name": "list-certificates",
"description": "List all SSL certificates in the account."
},
"Tencent_SSL.Tencent_SSL/GetCertificate": {
"name": "get-certificate",
"description": "Get detailed info for a specific certificate."
}
}
}
}
}
7 changes: 7 additions & 0 deletions services/tencent__ssl/src/service.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineService } from '@chaitin-ai/octobus-sdk';

import { handlers } from './tencent-ssl.js';

export { handlers } from './tencent-ssl.js';

export const service = defineService({ handlers });
Loading