Skip to content

PLX-261: pass workspace and deployment context to appConfig query and drop deprecated fields for Houston 2.0#2080

Open
Simpcyclassy wants to merge 7 commits intomainfrom
chore/appconfig-workspace-deployment-context
Open

PLX-261: pass workspace and deployment context to appConfig query and drop deprecated fields for Houston 2.0#2080
Simpcyclassy wants to merge 7 commits intomainfrom
chore/appconfig-workspace-deployment-context

Conversation

@Simpcyclassy
Copy link
Copy Markdown
Member

Description

Version-gate the appConfig GraphQL query for Houston 2.0 to pass workspace and deployment context for environment-specific feature flag overrides, and drop deprecated top-level fields now redundant with featureFlags.

What changed:

  • Added a 2.0.0 entry to the appConfig queryList that accepts optional $workspaceUuid and $deploymentUuid parameters and drops deprecated fields (manualReleaseNames, configureDagDeployment, nfsMountDagDeployment, manualNamespaceNames, hardDeleteDeployment, triggererEnabled)
  • Refactored GetAppConfig to accept a GetAppConfigRequest struct instead of a single clusterID string (required by houston.Call's single-arg generic constraint)
  • Deploy and update flows now pass workspace and deployment IDs so Houston can return context-aware feature flag overrides

What didn't change:

  • Older query paths (0.25.0, 0.28.0, 0.29.2, 1.0.0) are untouched
  • The backward-compat fallback for Houston 0.25.x (mapping deprecated fields → Flags struct) still works
  • No behavioral change for callers without workspace/deployment context — they pass an empty GetAppConfigRequest{}

🎟 Issue(s)

Related PLX-261

🧪 Functional Testing

  1. Connect CLI to Houston >= 2.0 and run astro deploy — verify appConfig query includes workspaceUuid and deploymentUuid and returns correct feature flags
  2. Connect CLI to Houston 1.0.x — verify the 1.0.0 query is selected (with clusterId only) and behavior is unchanged
  3. Run astro deployment update <id> — verify deploymentUuid is passed to appConfig
  4. Run astro login — verify registry auth still works with empty GetAppConfigRequest{}

📸 Screenshots

N/A — no UI changes.

📋 Checklist

  • Rebased from the main (or release if patching) branch (before testing)
  • Ran make test before taking out of draft
  • Ran make lint before taking out of draft
  • Added/updated applicable tests
  • Tested against Astro-API (if necessary).
  • Tested against Houston-API and Astronomer (if necessary).
  • Communicated to/tagged owners of respective clients potentially impacted by these changes.
  • Updated any related documentation

@Simpcyclassy Simpcyclassy requested review from a team as code owners April 9, 2026 19:16
@coveralls-official
Copy link
Copy Markdown

coveralls-official bot commented Apr 9, 2026

Coverage Report for CI Build 5

Coverage remained the same at 39.388%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: 14 uncovered changes across 3 files (11 of 25 lines covered, 44.0%).
  • 1 coverage regression across 1 file.

Uncovered Changes

File Changed Covered %
houston/mocks/ClientInterface.go 8 0 0.0%
houston/app.go 11 6 54.55%
cmd/software/deployment.go 2 1 50.0%

Coverage Regressions

1 previously-covered line in 1 file lost coverage.

File Lines Losing Coverage Coverage
houston/app.go 1 78.79%

Coverage Stats

Coverage Status
Relevant Lines: 63200
Covered Lines: 24893
Line Coverage: 39.39%
Coverage Strength: 9.52 hits per line

💛 - Coveralls

@Simpcyclassy Simpcyclassy changed the base branch from main to chore/remove-houston-airflow-deprecations April 9, 2026 19:42
@Simpcyclassy Simpcyclassy changed the title Chore/appconfig workspace deployment context PLX-261: pass workspace and deployment context to appConfig query and drop deprecated fields for Houston 2.0 Apr 9, 2026
func deploymentCreate(cmd *cobra.Command, out io.Writer) error {
if clusterID != "" {
appConfig, _ = houston.Call(houstonClient.GetAppConfig)(clusterID)
appConfig, _ = houston.Call(houstonClient.GetAppConfig)(houston.GetAppConfigRequest{ClusterID: clusterID})
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should pass workspace whereever possible. The astro cli commands don't expect workspace to be passed and it is stored in the context. You can fetch it anywhere via the coalesceWorkspace() function. Please use it here and pass the workspace as well.

}

appConfig, err := houston.Call(client.GetAppConfig)("")
appConfig, err := houston.Call(client.GetAppConfig)(houston.GetAppConfigRequest{})
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The caller of RegistryAuth function has the deployment object. You can pass all the details from the caller to RegistryAuth function and pass it appConfig.

Copy link
Copy Markdown

@karankhanchandani karankhanchandani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added comments. Can you please check those?

Base automatically changed from chore/remove-houston-airflow-deprecations to main April 10, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants