Commit 4609ec2
🌟[Major]: Domeneshop API capabilities now available (#16)
Domeneshop users gain authenticated access to the module's domain, DNS,
forwarding, DDNS, and invoice capabilities through a consolidated
pre-1.0 release candidate.
## New: Domeneshop API capabilities
The module adds Context-based credential handling and commands for
querying domains, managing DNS records and forwards, updating DDNS, and
retrieving invoices. Command safety, validation, focused tests, and
command-group documentation are included in the release candidate.
## New: Guided credential setup
Running `Connect-DomeneshopAccount` without `-Secret` or its `-Key`
alias opens the Domeneshop API settings page and securely prompts for
the secret. If a browser is unavailable, the command warns and continues
to the secure prompt. Explicit string and SecureString inputs remain
supported, and `-WhatIf` does not open the browser, prompt, or change
stored contexts.
## Changed: Release tooling and documentation
The release candidate adopts Process-PSModule v6.1.13, enforces Pester
6.x across every test file, consolidates public command tests into
root-level group suites, migrates the generated documentation site to
Zensical, replaces README placeholders with the standard module landing
page, and links each public command's help to its canonical generated
documentation.
---
<details>
<summary>Technical details</summary>
- Integrated PR #11, PR #13, the preserved pull ref for PR #12, PR #14,
and stacked PR #15 in the requested order; each exact source head is
verified as an ancestor of this branch. All five source PRs are now
closed and their remote branches deleted.
- Resolved the PR #11/PR #13 workflow overlap in favor of PR #13's
Process-PSModule v6.1.4 baseline, then updated the consolidated release
to latest Process-PSModule v6.1.13 at immutable commit
`fb1bdb8fefd243292f779d2a856a38db6fe6daf4`.
- Migrated `.github/mkdocs.yml` to `.github/zensical.toml`, satisfying
v6.1.13's Zensical-only documentation pipeline.
- PR #14 was merged explicitly before PR #15; PR #15's existing ancestry
was retained, so only its four standards-hardening commits were
introduced by the later merge.
- Added an integration commit applying PR #13's exact Pester 6.x
requirement to the command tests introduced by PR #15.
- Uses the Standard test-layout profile: grouped public commands are
covered by root-level `tests/<Group>.Tests.ps1` suites (`Auth`, `Ddns`,
`Dns`, `Domains`, `Forwards`, and `Invoices`), while ungrouped and
cross-cutting suites remain separate at the root. Deterministic layout
coverage verifies every public command has a matching `Describe` block
in its expected suite.
- Added interactive credential setup as a separate micro-commit,
including the exact `https://domene.shop/admin?view=api` launch,
`Read-Host -AsSecureString`, `Key` alias, side-effect-free `-WhatIf`
behavior, and a warning-only browser fallback that preserves secure
prompting.
- Added group-aware canonical links first in all 14 public function help
blocks: `https://psmodule.io/Domeneshop/Functions/<FunctionName>/` for
ungrouped commands and
`https://psmodule.io/Domeneshop/Functions/<Group>/<FunctionName>/` for
grouped commands. Deterministic tests require the exact trailing-slash
route and reject missing, incorrect, or secondary-first links.
- Linked clearly owned private Auth helpers to the published public
commands they support while retaining useful secondary Context links.
- Requires PowerShell 7.6, the latest LTS. The generated module manifest
declares `PowerShellVersion = 7.6` and `CompatiblePSEditions = Core`;
legacy Windows PowerShell compatibility branches are intentionally
excluded.
- Rejects whitespace-only API tokens, DDNS values, DNS filters, domain
filters, forward hosts, and smoke-test names before state changes or URI
construction.
- Addressed generated-document lint, reserved context names, empty
secrets, missing context diagnostics, strict WhatIf mutation boundaries,
portable test paths, output contracts, and automated-review findings
discovered during integration.
- Local validation: 83 Pester tests pass, PSScriptAnalyzer reports zero
findings across `src` and `tests`, and `git diff --check` passes.
- Exact-head Process-PSModule v6.1.13 CI succeeds on `9834688` (run
`30180761797`), including Build-Site and all module-local suites across
Linux, macOS, and Windows.
- PSModule/docs PR #86 and Process-PSModule PR #419 are merged, making
latest-LTS support and ternary allowance effective on their default
branches.
</details>
<details>
<summary>Relevant issues (or links)</summary>
- Fixes #2
- #11
- #12
- #13
- #14
- #15
- PSModule/docs#86
- PSModule/Process-PSModule#419
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>1 parent 37f682e commit 4609ec2
44 files changed
Lines changed: 2369 additions & 164 deletions
File tree
- .github
- workflows
- src/functions
- private
- Auth
- public
- Auth
- Ddns
- Dns
- Domains
- Forwards
- Invoices
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | | - | |
8 | | - | |
| 7 | + | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | 11 | | |
37 | | - | |
| 12 | + | |
| 13 | + | |
38 | 14 | | |
39 | 15 | | |
40 | | - | |
41 | | - | |
42 | | - | |
| 16 | + | |
43 | 17 | | |
44 | | - | |
45 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
46 | 24 | | |
47 | 25 | | |
48 | 26 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
0 commit comments