fix: composite schema validation#1385
Open
ganeshvissapragada wants to merge 34 commits into
Open
Conversation
…lint (Netcracker#1366) Two new rules under Documentation Standards prompted by a CI link-checker failure where a heading rename in features/app-reg-defs.md broke cross-links in envgene-pipelines.md (caught only after push). - Heading renames and cross-links: grep for old anchor repo-wide and update all cross-links before pushing. - Pre-flight markdownlint check: run with the project config (.github/linters/.markdown-lint.yml) to mirror the CI super-linter result and avoid false positives from default settings. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ent-specific ParameterSet (Netcracker#1349) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet (Netcracker#1339) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment (Netcracker#1340) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgenenull value override (Netcracker#1341) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgene null value (Netcracker#1343) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgene value (Netcracker#1344) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgene null value (Netcracker#1345) * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet * fix: envgeneNullValue does not enforce mandatory override in environment-specific ParameterSet
* docs: redo appdef * docs: redo appdef Update app-reg-defs.md Modified all the path as per new structure * docs: Update app-reg-defs.md Fixed Markdown issues * docs: Update app-reg-defs.md * docs: Update app-reg-defs.md * docs: Remove app-reg-defs_counter_prop documentation * docs: refactor app-reg-defs feature, use cases, and how-to guides Restructure the Application/Registry Definitions documentation across features, use cases, and how-to sections for clarity and consistency. features/app-reg-defs.md: - 8 top-level H2 sections (Problem, Approach, Definition sources, Processing order, Output layout, Migration, Consumers, Template transformation) - Definition sources lists 3 sources with explicit precedence - User-provided files section with replace and add semantics - Placement modes intro covers both dual/root behavior - Output Layout split from input sources (no duplication) - Migration H2 covers root vs dual upgrade scenarios use-cases/app-reg-defs.md: - Added UC-ARD-TR-3/TR-4 (shared template repo for off-site/on-site) - Added UC-ARD-UD-3 (add new via user-provided file) - Rebranded UO group as UD (User-Provided Definitions) - Migration group renamed to Placement modes (UC-ARD-PM-1/PM-2) - Added Overview NOTE clarifying placement-mode behavior coverage how-to/: - Removed customize-app-reg-defs.md (was reference, not goal-oriented) - Added app-reg-defs-add-without-template.md (instance repo maintainer) - Added app-reg-defs-add-to-template.md (template repo maintainer) - Both follow Diataxis goal-oriented step-by-step structure envgene-objects.md: - AppDef and RegDef Location notes mention /configuration/ alternative - Restored \<environment-template-artifact\> escape - Normalized table delimiter style to |---| envgene-configs.md: - app_reg_defs_placement full description per enum value - Backtick-around-link and broken-link-syntax fixes Removed: - docs/test-cases/appdef-regdef-template-management.md (15 entries moved or absorbed into use cases per UD/PM groups) All edits follow AGENTS.md: sentence-case headings, 120-char prose wrap, no em/en dashes, no semicolons in prose. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: fix cross-links in envgene-pipelines after app-reg-defs refactor Section anchors in features/app-reg-defs.md changed during the refactor (commit 5000076). Update cross-links in envgene-pipelines.md to use the new anchors: - #user-defined-by-template → #templates - #external-job → #external-job-deprecated - #application-and-registry-definitions-transformation → #template-transformation Also remove a trailing space (MD009) on the External Job line. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: KamalArya <kamal749@gmail.com> Co-authored-by: tofique-mandrupkar-netcracker <tofique.mandrupkar@netcracker.com> Co-authored-by: popoveugene <evgenii.a.popov.qubership@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add partial es generation * docs: wip * docs: wip * docs: wip * docs: wip
* docs: wip * docs: wip * docs: wip * docs: add exmple * docs: wip * docs: wip * docs: updates according the dev feedback * docs: apply dev feedback on external-creds validation rules and auto-population table - Move "Property cross-reference" from env_instance to ES validations (already enforced inline by VALS/ESO reference-generation algorithms) - Drop Tenant.credential, Cloud.defaultCredentialsId, Namespace.credentialsId rows from auto-population table; drop the precedence note - these refs are consumed by topology context / env builder, out of scope here - Downgrade Orphan check to warning so iterative param removal does not require manual credentials.yml cleanup Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: fix textlint NATURAL_LANGUAGE terminology errors - AGENTS.md: "blank line" -> "empty line", "repo" -> "repository" - docs/features/external-creds.md: "store id" -> "store ID", "azure" -> "Azure" in prose lists Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rewrites SBOM retention feature documentation and use cases to match the actual behavior in `build_effective_set_generator/scripts/sboms_retention_policy.py` and `python/envgene/envgenehelper/file_helper.py`. The previous documentation described a single size-gated cleanup, but the code runs per-application version retention unconditionally when enabled, followed by a 1200 MB safety net that wipes /sboms/ if the total size still exceeds the threshold. - features/sbom-retention.md: split retention strategy into per-application version retention (mtime-based) and total size safety net; clarify trigger conditions; add NOTE that ordering is by file modification time and that retention does not parse version strings - use-cases/sbom-retention.md: UC-1 cosmetic fixes; UC-2 reworked from "below threshold - no cleanup" (which is not what the code does) into "all applications within per-application limit - no files deleted"; UC-3/UC-4 renamed and result text neutralized to avoid implying SemVer parsing; new UC-5 documents the safety-net full wipe - features/sbom.md: fix link blurb about trigger condition - envgene-configs.md: update YAML comment under sbom_retention - schemas/config.schema.json and gsf_packages/.../git_hooks/config.schema.json: fix "1200 GB" -> "1200 MB" typo; align `keep_versions_per_app` minimum with pydantic model (`ge=0`); rewrite description to match the two-step algorithm Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: added cloudPassport association docs
* docs: fix linter issue
* docs: fix linter issue
* docs: fix linter issue
* docs: added tutorial doc
* docs: fixed linter
* docs: remove unused file
* docs: address review comments
* docs: address review comments and apply AGENTS.md compliance sweep
Fix unclosed factual issues from PR review: passport folder paths missing
<cluster-name>/ segment, Section 4.1 cloud row wording on well-known keys,
tutorial Step 3 regressions (explicit-association duplicate handling, auto-
association fallback path, Resolution summary table).
Apply AGENTS.md compliance pass across all three files: sentence-case
headings, em dashes replaced with colons/parens/periods in prose and link
text, semicolons split into separate sentences, TOC anchors regenerated for
renamed headings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: restructure Cloud Passport docs into processing feature + split how-to
Refocus the feature document on Cloud Passport processing: passport file,
resolution, merge into cloud.yml, and traceability. The mixed-cluster pattern
(separate business and infra passports) moves into a dedicated how-to that
covers when to use the pattern, content guidance, and step-by-step
configuration. The tutorial is removed as a follow-up effort; a real
getting-started tutorial requires runnable build commands and a self-contained
sample.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add AGENTS.md rules on heading numbering and in-repo link paths
Codify two markdown rules:
1. Do not number headings unless they enumerate alternative workflows.
Sequential topics rely on heading hierarchy and the TOC instead. Numbering
creates fragile cross-references and is not the repo convention (only 2 of
~36 docs use it, and only for alternative workflows).
2. Use repo-root absolute paths (/docs/..., /schemas/...) for in-repo
cross-references, not absolute GitHub URLs and not relative paths. GitHub
URLs pin to a single branch and break for forks; relative paths break when
files move.
Also fix two pre-existing MD038 violations (spaces in inline code spans) in
the Line length section that markdownlint flagged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: refine Cloud Passport processing docs, align canonical definition
Reframe the feature document around two-source Cloud assembly (Cloud Template
+ optional Cloud Passport, passport takes precedence) with a per-key mapping
table covering all 20+ well-known passport keys plus implicit ENABLED triggers
and a catch-all row for free-form sections. Annotate credentials-reference
rows with (cred ref) on the Cloud side and (cred.username/password/secret) on
the Effective Set side so the cred-id vs resolved-value distinction is
visible. Replace the resolution summary table with a compact decision flow
covering not-found and duplicate-passport failure modes.
Switch terminology from cloud.yml to Cloud (the object) across the feature
doc and how-to, and from "environment build" to "environment generation".
Convert in-repo links from absolute GitHub URLs to repo-root paths per the
new AGENTS.md rule. Drop bss references throughout. Apply the same Cloud
terminology to the verify-step in the how-to.
Trim the how-to toward Diataxis: drop the content guidance subsection (two
reference tables better placed elsewhere), shorten "When to use this pattern"
to one criterion with a clarification that "cluster" is a directory under
/environments/, and make Step 2 self-contained ("only cloud and global
sections").
Update the canonical Cloud Passport definition in envgene-objects.md to the
contract-by-keys framing (platform applications publish keys, business
applications consume them) and add a pointer to the new processing feature
doc. Add a vault section to the cluster-01 sample passport (and the
corresponding vault-cred entry to the creds sample) so the sample covers all
named service sections.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: add AGENTS.md rules on doc index updates and commit/PR scope
Codify two process rules:
1. Doc index updates - when adding, renaming, or removing a tutorial, how-to,
feature, or migration doc, update both index READMEs (/README.md and
/docs/README.md). Per-directory READMEs (features, use-cases) are
meta-docs, not navigation indexes, and don't need per-doc entries.
2. Commits and Pull Requests - Conventional Commits format, one logical
change per commit, and one focused goal per PR. Splits: rule changes
separately from rule-application content; mechanical changes separately
from semantic ones; pre-existing fixes in their own commit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: index Cloud Passport processing and split-passport how-to
Add the new Cloud Passport docs to the navigation indexes:
- /README.md and /docs/README.md: Cloud Passport Processing in Advanced
Features, Split a Cloud Passport for Business and Infra in How-To Guides.
- features/cloud-passport-processing.md: cross-link to use-cases/cloud-passport.md
in Related documentation.
Applies the Doc index updates rule introduced in the preceding commit.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs: address super-linter terminology warnings, document textlint preflight
Fix terminology violations flagged by super-linter's textlint rule:
- AGENTS.md: README/READMEs in prose to readme/readmes; standalone repo to
repository; "Blank line" to "Empty line".
- cloud-passport-processing.md: "cred id" to "cred ID".
Backtick-protected occurrences (in code spans and rule examples) are
unchanged because textlint excludes code spans.
Rename "Pre-flight markdownlint check" to "Pre-flight linter checks" and
add a textlint section so the natural-language terminology linter is
documented alongside markdownlint. Notes that the textlint config lives in
the shared netcracker/.github repository and is pulled at CI time; provides
a local preview command using the default terminology rule set.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: popoveugene <evgenii.a.popov.qubership@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: enabling the validation for composite structure * feat: support cloud public registry (Netcracker#1025) * chore: Update docker image tags and envgene_version for branch main [skip ci] --------- Co-authored-by: Jackson Raj A <150916845+BackendBits@users.noreply.github.com> Co-authored-by: qubership-actions[bot] <qubership-actions[bot]@users.noreply.github.com>
…mposite_structure_validation
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.
Pull Request
Summary
Provide a concise description of what this pull request does and why it is needed.
Issue
Link to the issue(s) this PR addresses (e.g.,
Fixes #123orCloses #456). If no issue exists, explain why this change is necessary.Breaking Change?
If yes, describe the breaking change and its impact (e.g., API changes, behavior changes, or required updates for users).
Scope / Project
Specify the component, module, or project area affected by this change (e.g.,
docs,actions,workflows).Implementation Notes
Provide details on how the change was implemented, including any technical considerations, trade-offs, or notable design decisions. Leave blank if not applicable.
Tests / Evidence
Describe how the changes were verified, including:
Additional Notes
Include any extra information, such as:
Leave blank if not applicable.