Feature
benefit-letters
Specify Feature (if "Other")
no response
Team
bmt-team-2 (Bee's Knees)
Specify Team (if "Other")
no response
Discipline
Engineering
Issue Type
Task
Summary
Send the cst_letters_content_updates state to the mobile client through /mobile/v0/user/authorized-services as cstLettersContentUpdates. Flag registration lives in Phase 2 (#140006); this ticket is auth-services exposure only.
Description / Context
This is Phase 3 of the initiative. After it ships, mobile can read authServices.cstLettersContentUpdates — it will return false for everyone until the flag is turned on, but the shape of the response is set, so Phase 7 (mobile FE) can start using it right away.
Scope
Add to Mobile::V0::UserAccessibleServices#service_auth_map (modules/mobile/app/models/mobile/v0/user_accessible_services.rb):
cstLettersContentUpdates: Flipper.enabled?(:cst_letters_content_updates, @user)
The actor must be @user (NOT icn_actor) so the same user always lands in the same bucket across mobile and web.
This follows the same pattern as secureMessagingOracleHealthEnabled on line 52 of the same file — plain Flipper check, @user actor, no ICN check (structured content doesn't need an ICN to show up).
Out of scope
- No changes to
Mobile::V0::LettersController or the letters response (Phase 4).
- No
description field added to the response yet (Phase 5).
- No vets-website changes — web has no server-side work; the service-level flag check in Phase 2 handles it.
- No frontend code uses the flag yet (Phase 6, Phase 7).
Risks / Dependencies
Design Details (if applicable)
no response
Accessibility Considerations (if applicable)
no response
Acceptance Criteria / Definition of Done
Links & Resources
Feature
benefit-letters
Specify Feature (if "Other")
no response
Team
bmt-team-2 (Bee's Knees)
Specify Team (if "Other")
no response
Discipline
Engineering
Issue Type
Task
Summary
Send the
cst_letters_content_updatesstate to the mobile client through/mobile/v0/user/authorized-servicesascstLettersContentUpdates. Flag registration lives in Phase 2 (#140006); this ticket is auth-services exposure only.Description / Context
This is Phase 3 of the initiative. After it ships, mobile can read
authServices.cstLettersContentUpdates— it will returnfalsefor everyone until the flag is turned on, but the shape of the response is set, so Phase 7 (mobile FE) can start using it right away.Scope
Add to
Mobile::V0::UserAccessibleServices#service_auth_map(modules/mobile/app/models/mobile/v0/user_accessible_services.rb):The actor must be
@user(NOTicn_actor) so the same user always lands in the same bucket across mobile and web.This follows the same pattern as
secureMessagingOracleHealthEnabledon line 52 of the same file — plain Flipper check,@useractor, no ICN check (structured content doesn't need an ICN to show up).Out of scope
Mobile::V0::LettersControlleror the letters response (Phase 4).descriptionfield added to the response yet (Phase 5).Risks / Dependencies
config/features.ymlbefore this references it.authServices?.cstLettersContentUpdateschecks.Design Details (if applicable)
no response
Accessibility Considerations (if applicable)
no response
Acceptance Criteria / Definition of Done
Mobile::V0::UserAccessibleServices#service_auth_mapincludescstLettersContentUpdates: Flipper.enabled?(:cst_letters_content_updates, @user)using@user(noticn_actor).cstLettersContentUpdatesin both flag-on and flag-off states (follow thecstMultiClaimProviderpattern as a reference).modules/mobile/spec/support/schemas/authorized_services.jsonincludes the new key.Links & Resources
modules/mobile/app/models/mobile/v0/user_accessible_services.rbmodules/mobile/spec/models/user_accessible_services_spec.rbmodules/mobile/spec/requests/mobile/v0/user/authorized_services_spec.rbmodules/mobile/spec/support/schemas/authorized_services.jsonsecureMessagingOracleHealthEnabledatuser_accessible_services.rb:52.cstLettersContentUpdatesRemote Config flag to va-mobile-app #140076