Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
3e2853e
Go Module and Directory Layout
itspriddle Mar 14, 2026
9273096
Version Package with ldflags Injection
itspriddle Mar 14, 2026
c4e23ba
Root Command with Global Flags
itspriddle Mar 14, 2026
138c24f
Makefile with Build Targets
itspriddle Mar 14, 2026
6ba1e36
Linter Configuration
itspriddle Mar 14, 2026
b7bdab5
GitHub Actions CI Workflow
itspriddle Mar 14, 2026
3fb9cf0
GoReleaser Configuration
itspriddle Mar 14, 2026
5d89c4b
Unit Tests for Scaffold
itspriddle Mar 14, 2026
f5c0832
Update .gitignore for Go
itspriddle Mar 14, 2026
7e9622b
Config Directory Resolution
itspriddle Mar 14, 2026
2b8241f
Config Loading and Saving
itspriddle Mar 14, 2026
71bfc0a
Credentials Loading and Saving
itspriddle Mar 14, 2026
08fced4
API Error Types
itspriddle Mar 14, 2026
d4ca220
HTTP API Client
itspriddle Mar 14, 2026
0405201
Output Format Detection
itspriddle Mar 14, 2026
c28d7ff
Output Helpers
itspriddle Mar 14, 2026
02d8560
App Context and PersistentPreRunE
itspriddle Mar 14, 2026
7d18311
Auth Login Command
itspriddle Mar 14, 2026
ab9d7c3
Auth Logout Command
itspriddle Mar 14, 2026
e9bcf61
Auth Status Command
itspriddle Mar 14, 2026
8d9c862
Command Helpers
itspriddle Mar 14, 2026
c407a71
Site Commands
itspriddle Mar 14, 2026
5cc95f9
Environment Commands
itspriddle Mar 14, 2026
e170c09
Deploy Commands
itspriddle Mar 14, 2026
2039c76
SSL Commands
itspriddle Mar 14, 2026
707d957
PHP Versions Command
itspriddle Mar 14, 2026
a2afa66
Event List Command
itspriddle Mar 14, 2026
8519f1c
Account Show Command
itspriddle Mar 14, 2026
19d5cc8
Account SSH Key Commands
itspriddle Mar 14, 2026
0587282
Account API Key Commands
itspriddle Mar 14, 2026
1cd2f83
Account Global Secret Commands
itspriddle Mar 14, 2026
ef3bcdb
Webhook Commands
itspriddle Mar 14, 2026
7b6e3d8
Backup List, Show, and Create Commands
itspriddle Mar 14, 2026
9afb58a
Backup Download Commands
itspriddle Mar 14, 2026
2cb75d8
Restore Commands
itspriddle Mar 14, 2026
a75fb09
WAF Rate Limit Commands
itspriddle Mar 14, 2026
7dc2586
WAF IP and Referrer List Commands
itspriddle Mar 14, 2026
b63a36a
Database Import Session Commands
itspriddle Mar 14, 2026
a55d98d
Database Export Commands
itspriddle Mar 14, 2026
b4a50e0
Archive Import Command
itspriddle Mar 14, 2026
8002c1c
MCP Setup Command
itspriddle Mar 14, 2026
2f4d22f
M3 Integration Tests
itspriddle Mar 14, 2026
d541df6
E2E Test Infrastructure Setup
itspriddle Mar 14, 2026
32a85fe
Auth E2E Tests
itspriddle Mar 14, 2026
7712480
Site E2E Tests
itspriddle Mar 14, 2026
2387afa
Environment E2E Tests
itspriddle Mar 14, 2026
64d9bc7
Deploy E2E Tests
itspriddle Mar 14, 2026
1810140
WAF E2E Tests
itspriddle Mar 14, 2026
cf31570
Account E2E Tests
itspriddle Mar 14, 2026
04aa84b
Remaining Resource E2E Tests
itspriddle Mar 14, 2026
da7fe6e
Output and Global Flag E2E Tests
itspriddle Mar 14, 2026
24df814
Makefile and CI Integration
itspriddle Mar 14, 2026
7917a7a
Remove rust code
itspriddle Mar 14, 2026
2bf722c
Fixup CI
itspriddle Mar 14, 2026
401a960
Update README/man page
itspriddle Mar 14, 2026
7bfd4e2
Add gojq Dependency
itspriddle Mar 15, 2026
2b601ba
Create output.Writer Struct
itspriddle Mar 15, 2026
b9cbfb9
Wire Up --jq Flag and Add Output to App
itspriddle Mar 15, 2026
2101a28
Migrate event.go to app.Output
itspriddle Mar 15, 2026
a87dc72
Migrate php_version.go to app.Output
itspriddle Mar 15, 2026
b9f30a9
Migrate account.go to app.Output
itspriddle Mar 15, 2026
495256c
Migrate archive.go to app.Output
itspriddle Mar 15, 2026
e37a5f5
Migrate site.go to app.Output
itspriddle Mar 15, 2026
d047cb0
Migrate env.go to app.Output
itspriddle Mar 15, 2026
fa07d16
Migrate deploy.go to app.Output
itspriddle Mar 15, 2026
b63e678
Migrate backup.go to app.Output
itspriddle Mar 15, 2026
6295c89
Migrate restore.go to app.Output
itspriddle Mar 15, 2026
c306e58
Migrate webhook.go to app.Output
itspriddle Mar 15, 2026
f57f92e
Migrate account_api_key.go to app.Output
itspriddle Mar 15, 2026
5850277
Migrate account_secret.go to app.Output
itspriddle Mar 15, 2026
687a6ce
Migrate account_ssh_key.go to app.Output
itspriddle Mar 15, 2026
f232800
Migrate env_secret.go to app.Output
itspriddle Mar 15, 2026
bb57787
Migrate env_db.go to app.Output
itspriddle Mar 15, 2026
02c6e55
Migrate site_ssh_key.go to app.Output
itspriddle Mar 15, 2026
d20d747
Migrate waf_rate_limit.go to app.Output
itspriddle Mar 15, 2026
6f2728e
Migrate waf_blocked_ip.go to app.Output
itspriddle Mar 15, 2026
76e1194
Migrate waf_blocked_referrer.go to app.Output
itspriddle Mar 15, 2026
2c8e791
Migrate waf_allowed_referrer.go to app.Output
itspriddle Mar 15, 2026
5307d3f
Migrate ssl.go to app.Output
itspriddle Mar 15, 2026
f2d8a8c
Migrate db_export.go to app.Output
itspriddle Mar 15, 2026
451a65f
Migrate db_import_session.go to app.Output
itspriddle Mar 15, 2026
543580d
Migrate backup_download.go to app.Output
itspriddle Mar 15, 2026
305fcfd
Migrate auth.go to app.Output
itspriddle Mar 15, 2026
d2f8665
Remove app.Format Field
itspriddle Mar 15, 2026
0375f8c
Update Documentation
itspriddle Mar 15, 2026
fcfe820
Improve auth, fix api spec issues
itspriddle Mar 15, 2026
8eed333
Download openapi spec if needed
itspriddle Mar 15, 2026
6afff51
Add go-keyring Dependency
itspriddle Mar 15, 2026
f2e3399
Replace Credential Storage with Keyring
itspriddle Mar 15, 2026
370d374
Update Login Command
itspriddle Mar 15, 2026
207f073
Update Logout Command
itspriddle Mar 15, 2026
56730cb
Update Token Resolution in Root Command
itspriddle Mar 15, 2026
63b8412
Clean Up Old Credential File References
itspriddle Mar 15, 2026
bd0d242
Fixup keyring in tests
itspriddle Mar 15, 2026
6d37e9f
Update cmd help, add manpage test
itspriddle Mar 15, 2026
287cdd7
Add completion notes
itspriddle Mar 15, 2026
4ef54c8
Update goreleaser
itspriddle Mar 15, 2026
995a649
Add AI helpers
itspriddle Mar 15, 2026
9a8ebb9
Surface snapshot generator
itspriddle Mar 15, 2026
05bcad9
Surface snapshot test and committed `.surface` file
itspriddle Mar 15, 2026
ed25c55
SKILL.md agent reference document
itspriddle Mar 15, 2026
16c4dfb
`vector skill` command — print skill
itspriddle Mar 15, 2026
d751d9a
`vector skill install` command
itspriddle Mar 15, 2026
4398b13
`vector skill uninstall` command
itspriddle Mar 15, 2026
66ca8e8
Auto-refresh skill on version change
itspriddle Mar 15, 2026
ab19206
Register skill command and regenerate surface
itspriddle Mar 15, 2026
af78eb5
Skill drift detection script
itspriddle Mar 15, 2026
006c155
Documentation updates
itspriddle Mar 16, 2026
b468212
Shared Wait Infrastructure
itspriddle Mar 16, 2026
cabb2e1
Alternate Screen TTY Display
itspriddle Mar 16, 2026
2fb673b
Deploy Trigger --wait
itspriddle Mar 16, 2026
4fec38b
Deploy Rollback --wait
itspriddle Mar 16, 2026
3b55c3c
Restore Create --wait
itspriddle Mar 16, 2026
2c1b2c9
Site Create --wait
itspriddle Mar 16, 2026
b55a6ef
Wait Infrastructure Tests
itspriddle Mar 16, 2026
c309548
Command-Specific Wait Tests
itspriddle Mar 16, 2026
308a97b
Surface, Skill, and Manpage Updates
itspriddle Mar 16, 2026
d951800
Add Brewfile
itspriddle Mar 17, 2026
469e257
Update release workflow
itspriddle Mar 17, 2026
3fa9171
Appease linter
itspriddle Mar 17, 2026
42686a3
Update Makefile, AGENTS.md
itspriddle Mar 17, 2026
81c0131
Run go fmt
itspriddle Mar 17, 2026
a408d14
Run go tidy
itspriddle Mar 17, 2026
be96d14
Download openapi spec from GitHub
itspriddle Mar 17, 2026
cc44582
Set GH_TOKEN for CI checks
itspriddle Mar 17, 2026
2313e17
Update CI workflow
itspriddle Mar 17, 2026
ea06ab0
Split quality CI tasks out
itspriddle Mar 17, 2026
b6c3a59
Update CI workflow
itspriddle Mar 18, 2026
93ef4a7
Update CI workflow
itspriddle Mar 18, 2026
64dcf06
Support multipart uploads > 5gb
itspriddle Mar 26, 2026
2fde942
Update actions
itspriddle May 22, 2026
dd67223
Update release flow
itspriddle May 22, 2026
0dff066
Site logs require environment
itspriddle May 22, 2026
39655fb
Update dependabot
itspriddle May 22, 2026
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
1 change: 1 addition & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@../AGENTS.md
15 changes: 13 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
version: 2
updates:
- package-ecosystem: "cargo"
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "11:00"
timezone: "America/New_York"
groups:
cargo:
go-modules:
patterns:
- "*"
cooldown:
default-days: 10
semver-major-days: 7
semver-minor-days: 3
semver-patch-days: 2
commit-message:
prefix: "Deps"

- package-ecosystem: "github-actions"
directory: "/"
Expand All @@ -23,3 +30,7 @@ updates:
github-actions:
patterns:
- "*"
cooldown:
default-days: 7
commit-message:
prefix: "Deps"
17 changes: 17 additions & 0 deletions .github/matchers/actionlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"problemMatcher": [
{
"owner": "actionlint",
"pattern": [
{
"regexp": "^(?:\\x1b\\[\\d+m)?(.+?)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*: (?:\\x1b\\[\\d+m)*(.+?)(?:\\x1b\\[\\d+m)* \\[(.+?)\\]$",
"file": 1,
"line": 2,
"column": 3,
"message": 4,
"code": 5
}
]
}
]
}
11 changes: 11 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
changelog:
exclude:
labels:
- dependencies
- github-actions
authors:
- dependabot[bot]
categories:
- title: Changes
labels:
- "*"
45 changes: 45 additions & 0 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Lint GitHub Actions

on:
pull_request:
branches:
- main

paths:
- '.github/workflows/*.yml'

push:
branches:
- main

paths:
- '.github/workflows/*.yml'

permissions:
contents: read

jobs:
actions:
name: Check GitHub Actions

runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Setup matchers
run: echo "::add-matcher::.github/matchers/actionlint.json"
shell: bash
env:
GH_TOKEN: ${{ github.token }}

- name: Run actionlint
uses: rhysd/actionlint@914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12

- name: Run zizmor
uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
with:
advanced-security: false
151 changes: 112 additions & 39 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,51 +10,124 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always
permissions:
contents: read

jobs:
lint:
name: Lint
quality:
name: Code Quality
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Set up Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
with:
go-version-file: go.mod
cache: true

- name: Install golangci-lint
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
with:
version: v2.11.3
args: --help

- name: Quality - formatting
run: make fmt-check

- name: Quality - go vet
run: make vet

- name: Quality - linting
run: make lint

- name: Quality - go tidy
run: make tidy-check

- name: Regressions - CLI surface changes
run: make check-surface

- name: Regressions - AI skill drift
run: make check-skill-drift

unit-tests:
name: Unit Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Set up Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --all -- --check
- run: cargo clippy -- -D warnings
go-version-file: go.mod
cache: true

test:
name: Test
- name: Tests - go unit tests
run: make test

integration-tests:
name: Integration Tests
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test

build:
name: Build / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
artifact: vector
- os: macos-latest
artifact: vector
- os: windows-latest
artifact: vector.exe
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Set up Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
with:
go-version-file: go.mod
cache: true

- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: '24'

- name: Install Prism
run: npm install -g @stoplight/prism-cli

- name: Cache BATS
id: cache-bats
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: /usr/local/libexec/bats-core
key: bats-1.13.0

- name: Install BATS
if: steps.cache-bats.outputs.cache-hit != 'true'
run: |
git clone --depth 1 --branch v1.13.0 https://github.com/bats-core/bats-core.git /tmp/bats-core
sudo /tmp/bats-core/install.sh /usr/local

- name: Tests - BATS e2e tests
env:
GH_TOKEN: ${{ github.token }}
run: make test-e2e

security:
name: Security
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build --release
- uses: actions/upload-artifact@v7
with:
name: vector-${{ matrix.os }}
path: target/release/${{ matrix.artifact }}
retention-days: 3
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Set up Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
with:
go-version-file: 'go.mod'

- name: Run govulncheck
# @latest intentional — pinning delays scanning improvements and
# new Go version support for no meaningful reproducibility gain.
run: |
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck -tags dev ./...
101 changes: 17 additions & 84 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,103 +6,36 @@ on:
- 'v*'

permissions:
actions: write
contents: write

env:
CARGO_TERM_COLOR: always

jobs:
build:
name: Build / ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
archive: tar.gz
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
archive: tar.gz
- target: x86_64-apple-darwin
os: macos-latest
archive: tar.gz
- target: aarch64-apple-darwin
os: macos-latest
archive: tar.gz
- target: x86_64-pc-windows-msvc
os: windows-latest
archive: zip

steps:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Install cross-compilation tools
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: |
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu

- name: Build
run: cargo build --release --target ${{ matrix.target }}
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc

- name: Package (Unix)
if: matrix.os != 'windows-latest'
run: |
staging="vector-${{ matrix.target }}"
mkdir -p "$staging/man/man1"
cp target/${{ matrix.target }}/release/vector "$staging/"
cp man/man1/vector.1 "$staging/man/man1/"
tar czvf "$staging.tar.gz" -C "$staging" .
rm -rf "$staging"

- name: Package (Windows)
if: matrix.os == 'windows-latest'
run: |
cd target/${{ matrix.target }}/release
7z a ../../../vector-${{ matrix.target }}.zip vector.exe
cd ../../..

- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: vector-${{ matrix.target }}
path: vector-${{ matrix.target }}.${{ matrix.archive }}

release:
name: Release
needs: build
runs-on: ubuntu-latest
environment: release
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
persist-credentials: false

- name: Download artifacts
uses: actions/download-artifact@v8
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0
with:
path: artifacts
merge-multiple: true
go-version-file: go.mod
cache: false

- name: Create release
uses: softprops/action-gh-release@v2
- uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
with:
files: artifacts/*
generate_release_notes: true
args: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Update homebrew tap
- name: Update Homebrew formula
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
gh workflow run bump-formula.yml \
-f version="${GITHUB_REF_NAME}" \
-f formula=vector \
-f version=${GITHUB_REF##refs/tags/} \
-f type=rust \
-f type=go \
-R built-fast/homebrew-devtools
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
Loading