{"_id":"@aphrody/ovh","_rev":"2-1aba3becc68e69bef052fc78a4646547","name":"@aphrody/ovh","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aphrody/ovh","version":"0.1.0","license":"Apache-2.0","_id":"@aphrody/ovh@0.1.0","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"bin":{"aphrody-ovh":"src/cli.ts"},"dist":{"shasum":"7feb4a85873656887941846e411a01145b7bf048","tarball":"https://registry.npmjs.org/@aphrody/ovh/-/ovh-0.1.0.tgz","fileCount":8,"integrity":"sha512-97vTBEveC23HFn2sXyf6C18t6OJtmNYb/3vEMnd+HtHF8gbovcKREjE1wt9TpGVlvX886oN2ZyUmAfMTalFtGw==","signatures":[{"sig":"MEUCIFtT0MndyQQCiXkEd72JOehbgWzyGf6ljpn8s31BjaI1AiEA9C1bA5Q2ggESy4eTCXK6GoH2mXCepTG//diNF0oy5f0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8604},"type":"module","shasum":"7feb4a85873656887941846e411a01145b7bf048","exports":{".":"./src/index.ts"},"scripts":{"init":"bun ./src/cli.ts init","test":"bun test","check":"bun ./src/cli.ts check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_integrity":"sha512-97vTBEveC23HFn2sXyf6C18t6OJtmNYb/3vEMnd+HtHF8gbovcKREjE1wt9TpGVlvX886oN2ZyUmAfMTalFtGw==","_npmVersion":"10.8.3","description":"Safe multi-profile OVH health and inventory monitor","directories":{},"_nodeVersion":"26.3.0","dependencies":{"@ovh-api/ip":"5.0.2","@ovh-api/me":"5.0.2","@ovh-api/api":"4.2.0","@ovh-api/cloud":"5.0.2","@ovh-api/domain":"5.0.2","@ovh-api/service":"5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/ovh_0.1.0_1788796624492_0.1265548962116021","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@aphrody/ovh@0.1.1","bin":{"aphrody-ovh":"src/cli.ts"},"dist":{"shasum":"d8c4e696364ec27424b267ebda78e3717d354365","tarball":"https://registry.npmjs.org/@aphrody/ovh/-/ovh-0.1.1.tgz","fileCount":5,"integrity":"sha512-QcHowVXheqNWlbjssHs2xLma0M4oFhKoxMzusn0wUPcd0zUMRS07ml+84Q1dU3nbjDIu4y409+uCGVdpTFwXWg==","signatures":[{"sig":"MEYCIQCozvyR2L+/PFYc9kU+ZtFVs4Lh8AzasuQQG2dlakNe2wIhAJC+n1j4Dl8crW2Jrh0UaGPgIxfcWaa0O66drtEtSy3i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPLo5Xy5EyJT7AKU7T4xLs9w21hCWUfdcLIDNJ/5KUTAIhAI0A5FlLti0J834z2rD95wce5OCjI6rZHsbGtcUB0kmH"}],"unpackedSize":26256},"name":"@aphrody/ovh","type":"module","exports":{".":"./src/index.ts"},"gitHead":"6981e124848acb9ce5364d87af955fd5fe992e23","license":"Apache-2.0","scripts":{"init":"bun ./src/cli.ts init","test":"bun test","check":"bun ./src/cli.ts check","profiles":"bun ./src/cli.ts profiles","typecheck":"tsc -p tsconfig.json --noEmit"},"version":"0.1.1","_npmUser":{"name":"yohan971","email":"yohanpierre@live.fr"},"_npmVersion":"9.2.0","description":"Safe multi-profile OVH health and inventory monitor","directories":{},"maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"_nodeVersion":"24.3.0","dependencies":{"@ovh-api/ip":"5.0.2","@ovh-api/me":"5.0.2","@ovh-api/api":"4.2.0","@ovh-api/cloud":"5.0.2","@ovh-api/domain":"5.0.2","@ovh-api/service":"5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14","typescript":"catalog:","@types/node":"^25.9.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ovh_0.1.1_1789022222929_0.4772709403092281"}}},"time":{"created":"2026-09-07T15:57:04.314Z","modified":"2026-09-10T06:37:03.268Z","0.1.0":"2026-09-07T15:57:04.634Z","0.1.1":"2026-09-10T06:37:03.058Z"},"license":"Apache-2.0","description":"Safe multi-profile OVH health and inventory monitor","maintainers":[{"name":"yohan971","email":"yohanpierre@live.fr"}],"readme":"# `@aphrody/ovh`\n\nSafe, non-interactive OVH profile selection and health polling for Aphrody.\n\nSupported profiles are fixed and intentionally small:\n\n| Profile | Credential source | Scope |\n| --- | --- | --- |\n| `aphrody.com` | `~/.bash_secrets` | `aphrody.com`, `rpbey.fr` |\n| `rosegriffon.fr` | `~/.ovh.conf` | `rosegriffon.fr` |\n| `dragonballfr.com` | `~/.config/ovh/dbfr.conf` | `dragonballfr.com` |\n\nThe loader reads only the allowlisted file and the three `OVH_*` keys below. It\nnever logs or copies credential values. Quoted values and `export KEY=value`\nsyntax are supported; shell expansion is deliberately not evaluated. On POSIX,\ncredential files must not be readable by group or other users, and symlinks are\nrejected. The Let’s Encrypt credentials file used by certificate renewal is\noutside this package’s API credential loader and is never read.\n\nCreate each source with:\n\n```dotenv\nOVH_APPLICATION_KEY=...\nOVH_APPLICATION_SECRET=...\nOVH_CONSUMER_KEY=...\n```\n\n`OVH_PROFILE` selects the default; `--profile` takes precedence. `init` creates\nthe local configuration directory but does not ask for or write credentials.\n\n```sh\nPush-Location packages/ovh\nbun run init\nbun run profiles\n$env:OVH_PROFILE=\"aphrody.com\"; bun run check\nbun ./src/cli.ts vps --profile aphrody.com --service vps-203bea89.vps.ovh.net\nbun ./src/cli.ts domain --profile aphrody.com --name aphrody.com\nbun ./src/cli.ts monitor --profile dragonballfr.com --interval 60000\nPop-Location\n```\n\n`profiles` prints metadata only. `check` performs an authenticated `/me` health\nprobe through `@ovh-api/api`; it exits with status 1 when authentication fails.\n`monitor` emits one JSON snapshot per interval and stops cleanly on `SIGINT`.\n`vps` collects the VPS details, datacenter, IPs, automated-backup settings, and\nsubscription status through read-only endpoints. `domain` collects the zone\nstatus, nameservers, DNSSEC/Anycast state, subscription dates, and DNS records.\nOnly domains listed for the selected profile are accepted. The API client stays\nbehind `createClient`, and inventory helpers accept a request client so tests\ncan run without network access or credentials.\n\nPackage checks:\n\n```sh\nbun run --cwd packages/ovh typecheck\nbun run --cwd packages/ovh test\n```\n","readmeFilename":"README.md"}