⚙️ [Maintenance]: Split module archetypes guidance#66
Merged
Marius Storhaug (MariusStorhaug) merged 5 commits intoJul 18, 2026
Conversation
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
Transport, REST/GraphQL functions, and Context do not have to be private. Provide guidance for three strategies: - Private transport (common approach, follows Dependency Inversion) - Public transport (for power users or module composition) - Public Context (for direct user configuration of state and settings) Module authors choose the strategy that best serves their audience.
Context module provides on-disk storage for user data and secrets. Modules must expose functions and object types so users can programmatically target specific contexts and environments. Users need to select which environment or context their functions operate against.
ConvertFrom-<Format> takes format-specific input and outputs PSCustomObject. ConvertTo-<Format> takes PSCustomObject input and outputs format-specific text. Use arrows to make the direction explicit in verb vocabulary table.
Marius Storhaug (MariusStorhaug)
marked this pull request as ready for review
July 18, 2026 13:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Module archetype guidance now documents Integration and Data modules with flexible transport and Context patterns. The guidance clarifies design choices for exposing or hiding transport abstractions, Context functions for targeting environments, and the ConvertFrom/ConvertTo data flow directions.
New: Module archetype guidance
PSModule modules fall into two standardized archetypes. The new Module-Types.md page documents:
Changed: Transport abstraction is flexible, not prescriptive
Transport, REST methods, and GraphQL functions do not have to be private. Modules now document three strategies:
Module authors choose the strategy that best serves their audience.
Changed: Context modules must expose functions and object types
The Context module provides on-disk storage for user data and secrets organized by context and environment. Modules must expose functions and object types so users can programmatically target specific contexts and environments. Users need to select which environment or context their functions operate against.
Improved: ConvertFrom/ConvertTo data flow clarity
The verb vocabulary table now explicitly shows data flow directions:
Technical Details
src/docs/Modules/Module-Types.mdwith Integration and Data archetype guidance.src/docs/Modules/index.mdwith module section links.src/zensical.toml.