Add proper metadata, environment declarations, and CHANGELOG
- Add package.json with OpenClaw skill metadata - Declare PORKBUN_API_KEY and PORKBUN_SECRET_API_KEY in environment - Document ~/.config/porkbun/config.json as config path - Add CHANGELOG.md with version history - Update README with installation instructions and changelog reference - Addresses security scanner recommendations for credential transparency
This commit is contained in:
60
CHANGELOG.md
Normal file
60
CHANGELOG.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to the Porkbun DNS skill will be documented in this file.
|
||||||
|
|
||||||
|
## [1.0.0] - 2026-02-10
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Initial release of Porkbun DNS management skill
|
||||||
|
- CLI tool `scripts/porkbun-dns.js` for all DNS operations
|
||||||
|
- Support for common record types: A, AAAA, CNAME, MX, TXT, NS, ALIAS, SRV, TLSA, CAA, HTTPS, SVCB, SSHFP
|
||||||
|
- Domain listing and status checking
|
||||||
|
- DNS record create, read, update, delete (CRUD) operations
|
||||||
|
- Batch operations: edit/delete by type and subdomain
|
||||||
|
- Configuration via environment variables or config file
|
||||||
|
- Full SKILL.md documentation with examples
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- **Ping**: Test API connection
|
||||||
|
- **List domains**: View all domains with status and expiration
|
||||||
|
- **Records**: Get all DNS records for a domain
|
||||||
|
- **Create**: Add new DNS records with full control (type, name, content, TTL, priority)
|
||||||
|
- **Edit**: Update records by ID or by type/subdomain
|
||||||
|
- **Delete**: Remove records by ID or by type/subdomain
|
||||||
|
- **Get**: Retrieve specific records with filtering by type and/or name
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- Complete SKILL.md with API reference and usage examples
|
||||||
|
- README.md with quick start guide
|
||||||
|
- Inline tool help (`node porkbun-dns.js --help`)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Planned
|
||||||
|
- DNS record validation before submission
|
||||||
|
- Bulk record import/export
|
||||||
|
- DNSSEC management support
|
||||||
|
- Zone file import/export
|
||||||
|
- Webhook notifications for DNS changes
|
||||||
|
- Rate limit handling
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Version Guidelines
|
||||||
|
|
||||||
|
This project follows [Semantic Versioning](https://semver.org/):
|
||||||
|
|
||||||
|
- **MAJOR** version: Incompatible API changes
|
||||||
|
- **MINOR** version: Backwards-compatible functionality additions
|
||||||
|
- **PATCH** version: Backwards-compatible bug fixes
|
||||||
|
|
||||||
|
## Categories
|
||||||
|
|
||||||
|
- **Added**: New features
|
||||||
|
- **Changed**: Changes in existing functionality
|
||||||
|
- **Deprecated**: Soon-to-be removed features
|
||||||
|
- **Removed**: Removed features
|
||||||
|
- **Fixed**: Bug fixes
|
||||||
|
- **Security**: Security vulnerabilities
|
||||||
37
README.md
37
README.md
@@ -10,31 +10,46 @@ This skill enables OpenClaw to manage DNS records on Porkbun's DNS service. It i
|
|||||||
|
|
||||||
### For OpenClaw Users
|
### For OpenClaw Users
|
||||||
|
|
||||||
Installation will be available via clawhub.ai once published. The skill file is `porkbun.skill`.
|
Installation is available via clawhub.ai: `openclaw skills install porkbun-dns`
|
||||||
|
|
||||||
### Manual Installation
|
### Manual Installation
|
||||||
|
|
||||||
1. Download `porkbun.skill`
|
1. Download or clone this repository
|
||||||
2. Install in your OpenClaw skills directory
|
2. Create `~/.config/porkbun/config.json` with your credentials (see Setup below)
|
||||||
3. Configure API credentials (see Setup below)
|
3. The CLI tool is available at `scripts/porkbun-dns.js`
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
### 1. Get API Keys
|
### 1. Get API Keys
|
||||||
|
|
||||||
Generate API keys at: https://porkbun.com/account/api
|
1. Log in to Porkbun
|
||||||
|
2. Visit https://porkbun.com/account/api
|
||||||
|
3. Generate API credentials (both public and secret keys)
|
||||||
|
|
||||||
### 2. Configure Credentials
|
### 2. Configure Credentials
|
||||||
|
|
||||||
Create `~/.config/porkbun/config.json`:
|
**Option A: Config file (recommended)**
|
||||||
```json
|
```bash
|
||||||
|
mkdir -p ~/.config/porkbun
|
||||||
|
cat > ~/.config/porkbun/config.json << EOF
|
||||||
{
|
{
|
||||||
"apiKey": "your-porkbun-api-key",
|
"apiKey": "your-pk1-api-key-here",
|
||||||
"secretApiKey": "your-porkbun-secret-key"
|
"secretApiKey": "your-sk1-secret-key-here"
|
||||||
}
|
}
|
||||||
|
EOF
|
||||||
```
|
```
|
||||||
|
|
||||||
**Important:** These keys are sensitive. Keep them secure and don't commit them to git.
|
**Option B: Environment variables**
|
||||||
|
```bash
|
||||||
|
export PORKBUN_API_KEY="your-pk1-api-key-here"
|
||||||
|
export PORKBUN_SECRET_API_KEY="your-sk1-secret-key-here"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Important:**
|
||||||
|
- These keys are sensitive - never commit them to git or share publicly
|
||||||
|
- The config file is read automatically if present
|
||||||
|
- Environment variables take precedence over config file
|
||||||
|
- Store credentials in `~/.config/porkbun/` which is excluded from git
|
||||||
|
|
||||||
### 3. Enable API Access
|
### 3. Enable API Access
|
||||||
|
|
||||||
@@ -69,8 +84,10 @@ Example conversations:
|
|||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Inside the skill:
|
Inside the skill:
|
||||||
|
- **CHANGELOG.md** - Version history and changes
|
||||||
- **SKILL.md** - Main usage guide
|
- **SKILL.md** - Main usage guide
|
||||||
- **references/dns-record-types.md** - Complete DNS record reference
|
- **references/dns-record-types.md** - Complete DNS record reference
|
||||||
|
- **package.json** - Skill metadata and environment requirements
|
||||||
|
|
||||||
Online:
|
Online:
|
||||||
- [Porkbun API Documentation](https://porkbun.com/api/json/v3/documentation)
|
- [Porkbun API Documentation](https://porkbun.com/api/json/v3/documentation)
|
||||||
|
|||||||
64
package.json
Normal file
64
package.json
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"name": "porkbun-dns",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Manage Porkbun DNS records and domains via API v3. Create, read, update, and delete DNS records for domains managed by Porkbun.",
|
||||||
|
"homepage": "http://git.theta42.com/nova/porkbun-skill",
|
||||||
|
"author": {
|
||||||
|
"name": "Nova AI",
|
||||||
|
"email": "nova@vm42.us"
|
||||||
|
},
|
||||||
|
"owner": "wmantly",
|
||||||
|
"openclaw": {
|
||||||
|
"always": false,
|
||||||
|
"capabilities": [
|
||||||
|
"execute"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"required": {
|
||||||
|
"PORKBUN_API_KEY": {
|
||||||
|
"description": "Porkbun API key from https://porkbun.com/account/api",
|
||||||
|
"help": "Create API credentials at Porkbun account settings",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"PORKBUN_SECRET_API_KEY": {
|
||||||
|
"description": "Porkbun secret API key from https://porkbun.com/account/api",
|
||||||
|
"help": "Must be paired with PORKBUN_API_KEY",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"optional": {},
|
||||||
|
"config": {
|
||||||
|
"paths": [
|
||||||
|
"~/.config/porkbun/config.json"
|
||||||
|
],
|
||||||
|
"help": "Alternatively, store credentials in ~/.config/porkbun/config.json with format: {\"apiKey\": \"key\", \"secretApiKey\": \"secret\"}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"install": {
|
||||||
|
"type": "instruction",
|
||||||
|
"steps": [
|
||||||
|
"1. Get API credentials: Log in to Porkbun and visit https://porkbun.com/account/api",
|
||||||
|
"2. Create API credentials (both public and secret keys)",
|
||||||
|
"3. Set environment variables OR create config file:",
|
||||||
|
" Option A: export PORKBUN_API_KEY='your-key' && export PORKBUN_SECRET_API_KEY='your-secret'",
|
||||||
|
" Option B: mkdir -p ~/.config/porkbun && cat > ~/.config/porkbun/config.json << EOF",
|
||||||
|
" {",
|
||||||
|
" \"apiKey\": \"your-pk1-key\",",
|
||||||
|
" \"secretApiKey\": \"your-sk1-key\"",
|
||||||
|
" }",
|
||||||
|
" EOF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"porkbun-dns": "scripts/porkbun-dns.js"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"keywords": [
|
||||||
|
"dns",
|
||||||
|
"porkbun",
|
||||||
|
"domain",
|
||||||
|
"api",
|
||||||
|
"cli"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user