Skip to content

[FSTORE-2049] Add support for Mandatory Tags in Models and Deployments#611

Open
manu-sj wants to merge 11 commits into
logicalclocks:mainfrom
manu-sj:FSTORE-2049
Open

[FSTORE-2049] Add support for Mandatory Tags in Models and Deployments#611
manu-sj wants to merge 11 commits into
logicalclocks:mainfrom
manu-sj:FSTORE-2049

Conversation

@manu-sj

@manu-sj manu-sj commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Extend the tags guide with model and deployment add_tag/get_tags/delete_tag examples and note that model/deployment tags are stored and retrievable but not indexed for free text search.
  • Add a mandatory-tags guide: cluster-wide and project-specific configuration across all artifact types, and the missing_mandatory_tags surfacing on models and deployments. Register the new page in the nav.

Test plan

  • markdownlint clean; Python code blocks are valid and within the 88-char line length.

Related PRs

https://hopsworks.atlassian.net/browse/FSTORE-2049

Document tags on models and deployments and the new mandatory tags
feature. Extend the tags guide with model and deployment add_tag,
get_tags and delete_tag examples, and note that model and deployment
tags are stored and retrievable but not indexed for free text search.
Add a mandatory tags guide covering cluster-wide and project-specific
configuration across all artifact types and the missing_mandatory_tags
surfacing on models and deployments. Register the new page in the nav.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the Feature Store tagging documentation to cover models and deployments, and introduces a new guide explaining how to configure and use mandatory tags for governance in Hopsworks.

Changes:

  • Added model/deployment add_tag/get_tags/delete_tag examples and clarified that model/deployment tags are not indexed for free-text search.
  • Added a new “Mandatory Tags” page describing cluster-wide and project-specific configuration and how missing mandatory tags are surfaced on models/deployments.
  • Registered the new Mandatory Tags page in mkdocs.yml navigation.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
mkdocs.yml Adds the new “Mandatory Tags” page to the FS Tags navigation.
docs/user_guides/fs/tags/tags.md Documents tagging APIs for models/deployments and notes search indexing behavior.
docs/user_guides/fs/tags/mandatory_tags.md New guide describing mandatory tag configuration and missing_mandatory_tags usage.

Comment thread docs/user_guides/fs/tags/tags.md Outdated
Comment thread docs/user_guides/fs/tags/tags.md Outdated
Comment thread docs/user_guides/fs/tags/mandatory_tags.md Outdated
Comment thread docs/user_guides/fs/tags/mandatory_tags.md Outdated
https://hopsworks.atlassian.net/browse/FSTORE-2049

Give the model and deployment example tabs distinct labels. Two
consecutive tabs titled "Python" in one tab group render ambiguously in
mkdocs-material; label them "Model (Python)" and "Deployment (Python)"
in the tags and mandatory tags guides.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread docs/user_guides/fs/tags/mandatory_tags.md Outdated
https://hopsworks.atlassian.net/browse/FSTORE-2049

Name the unaffected artifacts explicitly in the mandatory tags example
instead of the ambiguous "feature store artifacts".

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@manu-sj manu-sj marked this pull request as ready for review July 1, 2026 12:00
manu-sj and others added 8 commits July 2, 2026 14:58
https://hopsworks.atlassian.net/browse/FSTORE-2049

Replace the ambiguous [tags][tags] autorefs cross-references in the
mandatory tags guide with explicit relative links to tags.md, fixing
the strict CI build (mkdocs_autorefs found four pages defining a
"tags" anchor and aborted).

Correct the missing_mandatory_tags refresh semantics: the property is
populated at fetch time and add_tag does not update the object in
hand, so the model and deployment examples now refetch the artifact
and check the property again.

Document the write-path enforcement: the bulk tag REST endpoint (PUT
.../tags with the full tag set) rejects a set omitting a mandatory
tag with HTTP 400 INVALID_MANDATORY_TAG (370008), while single-tag
writes such as add_tag() are not gated.

Clarify per-artifact enforcement: feature groups, feature views and
training datasets are validated at creation and rejected when a
mandatory tag is missing, while models and deployments are created
regardless and surface the gap via missing_mandatory_tags.

Drop the unsupported "before it is promoted" claim from the intro,
and extend the tags guide enumerations to include models and
deployments now that they support tags.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Update the mandatory tags guide so models and deployments are
documented the same way as feature groups, feature views and training
datasets: enforced at creation and surfaced on read. The create
request is validated against the configured mandatory tags, so a
missing mandatory tag rejects the create with HTTP 400, and an
artifact created before a tag became mandatory stays valid but warns
on fetch.

Merge the previously split per-artifact enforcement section into a
single description covering all five artifact types. Add create-time
examples passing the mandatory tag through create_model(tags=...),
model.deploy(tags=...) and create_deployment(tags=...) with concrete
literal values so creation succeeds. Show the get-time UserWarning:
Missing mandatory tags emitted when refetching a pre-existing model or
deployment. This corrects the earlier surface-only description that
singled out models and deployments as non-blocking.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Update the mandatory tags examples to pass tags in the shared
name/value list form accepted by the Tag normalizer, matching how
feature groups take tags. The create-time examples for create_model,
model.deploy, and create_deployment previously passed tags as a
{tag_name: tag_value} mapping, which the Tag normalizer does not
accept and would silently drop. Each now passes a list of
{"name": ..., "value": ...} dictionaries. The surrounding prose is
updated to describe the accepted shape.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Drop the separate model and deployment tags subsection from the tags
guide. The add_tag, get_tag, get_tags, and delete_tag APIs are identical
across artifact types, so extend the existing note to say the same APIs
work for feature views, training datasets, models, and deployments
rather than repeating the examples.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Correct the location for configuring project-specific mandatory tags.
They are set by an administrator from Cluster settings > Projects by
selecting the project, not from the project's own settings.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Remove the single-tag and bulk tag writes section and inline its
HTTP 400 detail into the two places that referenced it, so the
mandatory tags guide focuses on creation-time enforcement without the
extra section.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Add feature group, feature view, and training dataset examples to the
attach-mandatory-tags-at-creation section, so the tags argument is shown
for all five artifact types rather than only models and deployments.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-2049

Add UI screenshots to the mandatory tags configuration section: the
cluster-wide governance policies under Cluster settings > Tag Schemas,
and the project-specific mandatory tags under Cluster settings >
Projects when editing a project.

Signed-off-by: Manu Sathyarajan Joseph <manu.joseph@logicalclocks.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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