-
Notifications
You must be signed in to change notification settings - Fork 7
Sample Project Best Practices
Matthew Casperson edited this page May 4, 2025
·
30 revisions
The ability to generate sample projects from prompts requires example projects that are serialised and passed to the LLM for one or few-shot learning. This page captures the best practices for the example projects to:
- Ensure consistency
- Avoid the limitations of LLMs
An example project must:
- Not rely on credentials being recreated in the target space
- No sensitive values will be passed to the AI
- Allow a project deployment or runbook run despite the lack of any targets or valid accounts
- Detect default or invalid credentials, and the lack of targets
- We expect customers to deploy a sample project or run a runbook without first checking any values
- Display a message with links to documentation as next steps
- We treat the project deployment or runbook run as a wizard that points customers to the next steps
- Docker images must come from a feed called
GHCR Anonymous
with the URL https://ghcrfacade-a6awccayfpcpg4cg.eastus-01.azurewebsites.net- This feed is a thin facade over the GHCR Docker API for images in the OctopusSolutionsEngineering organisation
- This allows for unauthenticated tag queries
- Packages must come from a Maven feed called
Octopus Maven Feed
with the URL http://octopus-sales-public-maven-repo.s3-website-ap-southeast-2.amazonaws.com/snapshot- This feed uses a public S3 bucket to expose an anonymous Maven repo
- Prefer the use of OIDC accounts
- Use GUIDs of
00000000-0000-0000-0000-000000000000
when creating Azure accounts
- Use
CHANGE ME
for all sensitive values.- This is the value that all sensitive values are defaulted to during export
- Any scripts checking for default values must assume sensitive values are set to
CHANGE ME
- The first step in a deployment or runbook process must be a step called
Validate Setup
that detects default or invalid credentials and prints highlight messages indicating next steps - Deployments must be allowed with no targets
- A step must be included called
Detect Missing Targets
that detects the absence of targets and prints the next steps - Deployment processes must deploy Octopub if possible