Commit Graph

27 Commits

Author SHA1 Message Date
95ab514e07 Add one-liner install commands to README
All checks were successful
CI / build (push) Successful in 52s
Endpoint Sync Check / check-drift (push) Successful in 27s
Copy-paste install commands for Linux, macOS (ARM + Intel), Windows,
and from-source. Reorganized Quick Start into numbered steps with
env var setup, minimal main.tf, and terraform plan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:50:01 -04:00
b86137f0b8 Make GPG signing optional in release workflow
All checks were successful
CI / build (push) Successful in 33s
Endpoint Sync Check / check-drift (push) Successful in 18s
Release / release (push) Successful in 4m53s
Skip GPG import and pass --skip sign to GoReleaser when
GPG_PRIVATE_KEY secret is not configured. Allows releases
to proceed without signing until keys are set up.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v1.0.0
2026-03-16 02:33:31 -04:00
e26c78e2c2 Switch release workflow and GoReleaser to Gitea-native
Some checks failed
Endpoint Sync Check / check-drift (push) Successful in 21s
CI / build (push) Successful in 34s
Release / release (push) Failing after 31s
- .goreleaser.yml: replace release.github with release.gitea, add
  gitea_urls pointing to git.ezscale.cloud
- release.yaml: use GITEA_TOKEN (via secrets.RELEASE_TOKEN) instead of
  GITHUB_TOKEN, remove manual curl-based Gitea release step (GoReleaser
  handles it natively now)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:26:13 -04:00
467f1bf829 Remove terraform fmt go:generate directive
All checks were successful
CI / build (push) Successful in 1m16s
The CI environment does not have the terraform binary installed.
The terraform fmt directive is not required for builds — it was only
a convenience for formatting example .tf files locally.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:22:52 -04:00
f20f803fbe Remove deprecated issues config from golangci-lint
Some checks failed
CI / build (push) Failing after 1m3s
golangci-lint v1.64+ removed max-per-linter and max-same-issues from
the issues section schema. Remove them to pass config validation in CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:18:13 -04:00
39c8cf0b58 Fix golangci-lint: formatting, nilerr false positive, deprecated linter names
Some checks failed
CI / build (push) Failing after 34s
- gofmt: fix struct field alignment in types.go, resource_server.go,
  data_source_ssh_keys_by_user.go
- nilerr: refactor GetAllPages pagination detection to avoid returning
  nil error when json.Unmarshal fails (intentional passthrough for
  non-paginated responses)
- .golangci.yml: replace deprecated linter names (vet -> govet,
  tenv -> usetesting)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:17:13 -04:00
5b1dd07063 Regenerate docs, update CHANGELOG for v1.0.0, clean up registry manifest
Some checks failed
CI / build (push) Failing after 33s
- Regenerated docs/ via tfplugindocs: 51 files covering all 20 resources
  and 30 data sources with auto-extracted schemas and examples
- Removed stale docs for old resources (build.md, ssh.md)
- CHANGELOG.md: added v1.0.0 entry with full feature list, breaking
  changes, and security notes
- terraform-registry-manifest.json: confirmed protocol_versions ["6.0"]
  is correct for Terraform Plugin Framework

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:14:11 -04:00
7dba96409f Add project CLAUDE.md and rewrite README.md for current provider
Some checks failed
CI / build (push) Failing after 34s
- CLAUDE.md: architecture guide, conventions, type mapping quirks,
  build commands, and common pitfalls for AI-assisted development
- README.md: full resource/data source tables, quick start guide,
  environment variable configuration, and usage examples

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:11:28 -04:00
ef8fbd530b Fix path injection, sensitive attribute exposure, and error body truncation
Some checks failed
Endpoint Sync Check / check-drift (push) Successful in 50s
CI / build (push) Failing after 1m26s
Security fixes from audit:

- Escape user-supplied strings (ext_relation_id, interface_name) with
  url.PathEscape before interpolating into API URL paths, preventing
  path traversal via crafted values like "../admin" or "foo/bar"
- Mark auth token URL attributes as Sensitive in both
  virtfusion_user_auth_token and virtfusion_user_server_auth_token
  resources, since the URL embeds the signed token
- Truncate raw API error response bodies to 500 bytes in error messages
  to prevent leaking sensitive data from verbose Laravel error responses

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:07:34 -04:00
6b7430b67b Overhaul VirtFusion provider: 20 resources, 30 data sources, multipage pagination
Complete rewrite of the VirtFusion Terraform provider with full API coverage:

- 20 managed resources (server, build, SSH key, user, firewall, IP blocks, etc.)
- 30 data sources (hypervisors, packages, servers, IP blocks, self-service, etc.)
- New HTTP client with proper error handling, query parameter support, and
  automatic multipage pagination via GetAllPages (fetches all pages from
  Laravel-style paginated endpoints and merges into a single response)
- Fixed type mismatches against live API: ServerData.Suspended (int→bool),
  IPBlockData.Type (string→int), PackageData json tags (primaryStorage, etc.),
  ServerData nested CPU/Settings/Resources structure, HypervisorGroupResources
  array response
- Configurable results-per-page (default 300) on all list data sources
- Migrated CI from GitHub Actions to Gitea Actions
- Updated goreleaser config, go.mod dependencies, and examples

Verified against live VirtFusion instance at cp.vps.ezscale.tech:
all data sources return correct data with full pagination support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 02:01:16 -04:00
a3a16f46fa Add version number to example 2023-10-24 12:17:12 -04:00
Andrew
ac9d5de3be Merge pull request #8 from EZSCALE/dependabot/go_modules/golang.org/x/net-0.17.0
Bump golang.org/x/net from 0.11.0 to 0.17.0
2023-10-24 12:12:46 -04:00
Andrew
237dd42896 Merge pull request #6 from EZSCALE/issue-templates
Update issue templates
2023-10-24 12:11:01 -04:00
dependabot[bot]
dfa265a5bf Bump golang.org/x/net from 0.11.0 to 0.17.0
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.11.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.11.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-24 16:09:23 +00:00
Andrew
ae46fc6e00 Update issue templates 2023-10-24 12:05:30 -04:00
689069921a v0.0.3 v0.0.3 2023-10-24 11:54:34 -04:00
dfd2240fff Update Docs 2023-10-24 11:48:15 -04:00
da54a7062b Update Docs 2023-10-24 11:35:23 -04:00
ef06a879b8 Created SSH management 2023-10-24 11:30:16 -04:00
f0986d7d54 Updates v0.0.2-dev 2023-10-22 19:11:13 -04:00
ff5d061fd2 Removed 2023-10-22 19:01:04 -04:00
456d32bca9 Created server build v0.0.1-dev 2023-10-22 18:51:18 -04:00
afebefe635 updates 2023-10-22 15:13:01 -04:00
2e32ae4b5c Removed 2023-10-22 15:11:35 -04:00
c3f4608db3 Updates 2023-10-22 15:03:08 -04:00
50eeba7961 Updates 2023-10-22 00:52:33 -04:00
Prophet731
5d5621266f Initial commit 2023-08-19 20:55:01 -04:00