Skip to content

Feat/175/cli filters - #175

Merged
BSick7 merged 3 commits into
masterfrom
feat/175/cli-filters
Sep 9, 2026
Merged

BSick7 merged 3 commits into
masterfrom
feat/175/cli-filters

Conversation

@BSick7

@BSick7 BSick7 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor
  • Added Environment.Metadata (closed struct, Description) and Environment.Tags (open map[string]string, top-level).
  • Environments.UpdateTagsPATCH .../envs/:id/tags with a per-key patch (value sets, nil clears, absent untouched; "" is distinct from cleared). UpdateEnvironmentInput.Metadata for partial metadata updates.
  • Added missing PreviewApps.Replace (the existing PUT .../preview_apps, replace semantics).
  • Environments.FindGET .../envs?type=&status=&is_prod=&search=&tag=KEY=VALUE, filtered server-side by nullfire. List is unchanged.

No breaking changes: Environments.Create keeps its *types.Environment signature (the CreateEnvironmentInput refactor was dropped).

Downstream: nullfire feat/174/envs-fields and nullstone CLI feat/175/cli-filters re-vendor once this is tagged.

Linear: NUL-174, NUL-175

@BSick7
BSick7 force-pushed the feat/175/cli-filters branch from bc3274d to ed121b9 Compare August 13, 2026 12:22
Metadata is a closed, platform-defined struct (Description is its first
member), mirroring WorkspaceMetadata. Tags is the open user keyspace and
sits top-level rather than nested under Metadata, because tag writes are
high-frequency per-key and would otherwise be read-modify-writes of the
whole metadata blob.

UpdateEnvironmentTagsInput applies a per-key patch: a value sets/updates,
nil clears, an absent key is untouched. Setting a key to "" is distinct
from clearing it.

NUL-174
PreviewApps only implemented List, so there was no way to change an env's
preview app set from a client. Replace has replace semantics, which the doc
comment spells out -- callers must List, mutate, and send the full list back.

NUL-175
type, status, is_prod, search (substring or whole-name pattern with * and ?),
and repeatable tag=KEY=VALUE. An empty tag value means unset-or-empty.
@BSick7
BSick7 force-pushed the feat/175/cli-filters branch from ed121b9 to 7165881 Compare September 9, 2026 19:32
@BSick7 BSick7 self-assigned this Sep 9, 2026
@BSick7
BSick7 merged commit 42df295 into master Sep 9, 2026
@BSick7
BSick7 deleted the feat/175/cli-filters branch September 9, 2026 19:34
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.

1 participant