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
|
||||
|
||||
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
|
||||
|
||||
1. Download `porkbun.skill`
|
||||
2. Install in your OpenClaw skills directory
|
||||
3. Configure API credentials (see Setup below)
|
||||
1. Download or clone this repository
|
||||
2. Create `~/.config/porkbun/config.json` with your credentials (see Setup below)
|
||||
3. The CLI tool is available at `scripts/porkbun-dns.js`
|
||||
|
||||
## Setup
|
||||
|
||||
### 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
|
||||
|
||||
Create `~/.config/porkbun/config.json`:
|
||||
```json
|
||||
**Option A: Config file (recommended)**
|
||||
```bash
|
||||
mkdir -p ~/.config/porkbun
|
||||
cat > ~/.config/porkbun/config.json << EOF
|
||||
{
|
||||
"apiKey": "your-porkbun-api-key",
|
||||
"secretApiKey": "your-porkbun-secret-key"
|
||||
"apiKey": "your-pk1-api-key-here",
|
||||
"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
|
||||
|
||||
@@ -69,8 +84,10 @@ Example conversations:
|
||||
## Documentation
|
||||
|
||||
Inside the skill:
|
||||
- **CHANGELOG.md** - Version history and changes
|
||||
- **SKILL.md** - Main usage guide
|
||||
- **references/dns-record-types.md** - Complete DNS record reference
|
||||
- **package.json** - Skill metadata and environment requirements
|
||||
|
||||
Online:
|
||||
- [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