feat(BA-6556): AppConfig REST v2 API (raw fragments and merged read/update)#12377
Draft
jopemachine wants to merge 2 commits into
Draft
feat(BA-6556): AppConfig REST v2 API (raw fragments and merged read/update)#12377jopemachine wants to merge 2 commits into
jopemachine wants to merge 2 commits into
Conversation
8647d4b to
818444b
Compare
39bb559 to
7d4e0cc
Compare
This was referenced Jun 24, 2026
818444b to
13b4d40
Compare
7d4e0cc to
8168065
Compare
13b4d40 to
67fe4c6
Compare
8168065 to
304ddcd
Compare
67fe4c6 to
de63b73
Compare
caf0913 to
f208ae6
Compare
bb05c39 to
547d235
Compare
f208ae6 to
e20123e
Compare
547d235 to
8c6c5a9
Compare
e20123e to
2e6fdbe
Compare
8c6c5a9 to
74a7d2e
Compare
2e6fdbe to
39e5265
Compare
74a7d2e to
15ce5fb
Compare
39e5265 to
98932dc
Compare
15ce5fb to
1d15924
Compare
98932dc to
fa7cabe
Compare
13e7c44 to
1e71fac
Compare
fa7cabe to
b273700
Compare
1e71fac to
27061c1
Compare
b273700 to
56586f7
Compare
6de2086 to
ad197c4
Compare
5b061dd to
71f85de
Compare
347990c to
f603fa9
Compare
d7bdad2 to
70928e9
Compare
f603fa9 to
347990c
Compare
70928e9 to
d7bdad2
Compare
347990c to
b447d79
Compare
d7bdad2 to
2b676cc
Compare
b447d79 to
25dbbe5
Compare
2b676cc to
9977c1d
Compare
25dbbe5 to
9e7f3f9
Compare
This was referenced Jul 9, 2026
Closed
This was referenced Jul 14, 2026
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.
Summary
Adds the AppConfig REST v2 API (BA-6556, BEP-1052 / epic BA-5781), mirroring the layered
app_config_allow_list/app_config_definitionstacks. This is the API surface over the fragment write/search service (BA-6554) and the merged-AppConfig read service (BA-6555).Endpoints
/v2/app-config-fragments//v2/app-config-fragments/{fragment_id}/v2/app-config-fragments/{fragment_id}/v2/app-config-fragments/{fragment_id}/v2/app-config-fragments/search/v2/app-config-fragments/scoped-search(domain, user)/v2/app-config/resolve/v2/app-config/public/{config_name}Layers
AppConfigFragmentRepositories+AppConfigService/AppConfigFragmentService+ processors intoRepositories/Services/Processors/ factory.VisibleConfigTarget+AppConfigVisibleScoperesolve to public + the principal's domain + the principal's own user fragment (reusing theby_*_visibilityconditions), unconditional like resolve.AppConfigService.resolve_public+list_public_fragmentsmerge only public-scope fragments for an anonymous (pre-login) caller.AppConfigAdapter, v2 DTOs (app_config,app_config_fragment), route registries + tree wiring,AppConfigResolveNotAllowed(403).Notes
resolve/scoped-searchadditionally reject a request whoseuser_idis not the authenticated caller, a temporary stand-in until the validator lands.domainis not yet guarded.📚 Stacked PRs
Part of the AppConfigFragment / AppConfig stack under BEP-1052 (epic BA-5781). Merge in order:
feat(BA-6552): app_config_fragments DB model and Alembic migrationfeat(BA-6553): repository layerrefactor(BA-6619): consolidate AppConfigScopeType into common.datarefactor(BA-6620): ExistsQuerier + AppConfigAllowList.existsfeat(BA-6554): AppConfigFragment service layerfeat(BA-6702): move fragment rank to the allow list with scope defaultsfeat(BA-6701): expose allow-list rank on the v2 API surfacefeat(BA-6704): cascade app config subtree deletion from the definitionfeat(BA-6626): app_config_fragment bulk repository layerfeat(BA-6618): app_config_fragment bulk CRUD service layerfeat(BA-6810): AppConfigFragment visible-fragments query (repository layer)feat(BA-6886): registerAPP_CONFIG_FRAGMENTas an RBAC resource type + permission backfillfeat(BA-6859): bind fragments to their RBAC scope on write (repository layer)fix(BA-6872): seedAPP_CONFIG_FRAGMENTpermissions into the RBAC role fixturechore(BA-6873): drop the dead APP_CONFIG RBAC entity typefeat(BA-6555): AppConfig merge engine + resolve service (service layer)feat(BA-6556): AppConfig REST v2 API ← you are herefeat(BA-6860): fragment write API routes + bulk write authzAccess model: fragment
create/update/purgeare gated by RBAC (a user writes their ownuser-scope fragment, a domain admin their domain's, a superadmin any —publicis superadmin-only); reads are gated by the allow list (existence = readable layer,rank= merge order) plus scope visibility, with no RBAC on the read path;app_config_definitions/app_config_allow_listthemselves are superadmin-only (REST + GQL). Closed / superseded: #12794 · #12756 · #12764.📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/
📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/
📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/
📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/
📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/
📚 Documentation preview 📚: https://sorna--12377.org.readthedocs.build/en/12377/
📚 Documentation preview 📚: https://sorna-ko--12377.org.readthedocs.build/ko/12377/