Repository navigation
feat: publish group documents under the group's own network provider [#190] - #36
Merged
Merged
Conversation
Documents filed under a state publish to the network under that Group's provider (NETWORK_GROUP_PROVIDER_IDS), with group-prefixed catalog and resource ids. Bharat Vistaar and default keep the shared provider. A Group with no provider is skipped with a warning shown on the document page; a malformed map stops the API and worker from booting. Chunks gain a group field beside instance/instance_name. See ADR 0006. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…[#190] Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
tarannum-2002
approved these changes
Oct 20, 2026
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
OpenAgriNet/engineering-tracker#190
What
Each catalog published to the network now has a provider per Knowledge Kind and instance. Documents filed under a state (its Group) publish under that Group's own provider. See ADR 0006.
bv/defaultadvisoryadvisory.bv.provider.oan.devcat-oan-knowledge-provider-advisoriesmhadvisoryadvisory.mh.provider.oan.devmh-cat-…-advisories,mh-res-…-advisoriesmhschemescheme.mh.provider.oan.devmh-cat-…-schemes,mh-res-…-schemeskawith an overrideadvisory.ka.comka-cat-…,ka-res-…Every state publishes; no state is skipped for missing config.
How
NETWORK_PROVIDER_ID_TEMPLATE, default{kind}.{instance}.provider.oan.dev.NETWORK_ADVISORY_PROVIDER_NAMEandNETWORK_SCHEMES_PROVIDER_NAME, defaults "Advisories from documents" and "Schemes from documents".NETWORK_GROUP_PROVIDER_NAME_TEMPLATE, default{group_name} {provider_name}.PROVIDER_CONFIG_OVERRIDE_PATHpoints to a JSON file of instance →{kind: provider id}, e.g.{"ka": {"advisory": "advisory.ka.com", "scheme": "scheme.ka.com"}}.pipeline/network_group_providers.jsonis used. There's an example atdeploy/network_group_providers.example.json.{kind}or{instance}, a Group name template missing{group_name}, or a provider id (rendered or overridden) that isn't lowercase letters, digits,-and dot-separated parts stops the API and worker from booting. A document whose instance code renders an invalid id fails its publish, without retry, before anything is sent.instance, not the uploader.PORTAL_INSTANCEandDEFAULT_INSTANCEmean "no Group", and those documents usePORTAL_INSTANCE(bv) in the provider id.instance/instance_name.senderId/networkIdare unchanged.pipeline/network_provider.py(pure);network_group.pyreads env and the overrides file;catalog_builder.pytakes the resolved provider.Not in this PR
instance.Deploy notes
bvtoo) and the Groups' prefixed catalog and resource ids.advisory.bv/scheme.bvinstead ofknowledge-provider, with the same catalog ids. Whether the network moves them or keeps the old entry is untested.apiandworkerand setPROVIDER_CONFIG_OVERRIDE_PATH(compose doesn't do this).Testing
uv run pytest: 563 passed. Tests cover Group resolution, provider naming and overrides, override-file parsing, template validation, boot refusal, the catalog shape, the publish service and the activity.uv run ruff check .: clean.cd ui && npm run build: clean.mhscheme published under the earlier per-Group design and was ACCEPTED bydpg-dev.openagrinet.global. Payloads were rendered in the worker for the current design.🤖 Generated with Claude Code