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:
2026-02-11 16:22:10 +00:00
parent f135b6b223
commit a124123ecc
3 changed files with 151 additions and 10 deletions

60
CHANGELOG.md Normal file
View 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

View File

@@ -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
View 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"
]
}