feat: rework the comand structure to be VERB NOUN#177
Draft
Bryce Groff (bgroff) wants to merge 1 commit intomainfrom
Draft
feat: rework the comand structure to be VERB NOUN#177Bryce Groff (bgroff) wants to merge 1 commit intomainfrom
Bryce Groff (bgroff) wants to merge 1 commit intomainfrom
Conversation
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.
NOUN Module Structure
internal/
├── cmd/
│ ├── cmd.go # Root command
│ └── verbs/ # VERB implementations
│ ├── get.go
│ ├── list.go
│ ├── create.go
│ ├── edit.go
│ ├── delete.go
│ └── logs.go
└── nouns/
├── interface.go # Common interfaces
├── airbyte/
│ ├── getter.go # abctl get airbyte
│ ├── lister.go # abctl list airbyte
│ ├── creator.go # abctl create airbyte (install)
│ ├── editor.go # abctl edit airbyte
│ ├── deleter.go # abctl delete airbyte (uninstall)
│ └── logger.go # abctl logs airbyte
├── dataplane/
│ ├── getter.go
│ ├── lister.go
│ ├── creator.go
│ ├── editor.go
│ ├── deleter.go
│ └── logger.go
├── region/
│ └── ... (same pattern)
└── workspace/
└── ... (same pattern)
Example Commands
Airbyte (local) operations
abctl create airbyte --port 8000 --low-resource-mode
abctl get airbyte # status by default
abctl get airbyte --credentials # get credentials
abctl get airbyte --manifest # get image manifest
abctl list airbyte # list deployments
abctl logs airbyte --follow
abctl edit airbyte --port 9000 # modify configuration
abctl delete airbyte --force
Workspace operations
abctl create workspace my-workspace --region us-west-2
abctl get workspace my-workspace
abctl list workspace --region us-west-2
abctl edit workspace my-workspace --name new-name
abctl delete workspace my-workspace
Dataplane operations
abctl create dataplane prod-dataplane --region eu-central-1
abctl list dataplane
abctl get dataplane prod-dataplane
abctl logs dataplane prod-dataplane --tail 100
Region operations
abctl list region
abctl get region us-west-2
Benefits