You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "Aman-Mittal (via GitHub)" <gi...@apache.org> on 2026/10/16 08:05:30 UTC

[I] External services: add the SMS (message gateway) configuration [fineract-backoffice-ui]

Aman-Mittal opened a new issue, #790:
URL: https://github.com/apache/fineract-backoffice-ui/issues/790

   ## Summary
   
   The External Services screen configures **S3**, **SMTP** and **Notification**, but not **SMS**, the message-gateway connection Fineract uses to send SMS campaigns and notifications. SMS campaigns can be created in this UI, but the gateway they depend on can only be configured through the API.
   
   ## Evidence (`main` @ `8da1086f`)
   
   `src/app/features/system/external-services/external-services.component.ts:132` sets `readonly serviceNames = ['S3', 'SMTP', 'NOTIFICATION'];`.
   
   ## Platform support
   
   - `GET /v1/externalservice/SMS` and `PUT /v1/externalservice/SMS`. `SMS` maps to the stored service `MESSAGE_GATEWAY` (`ExternalServicesReadPlatformServiceImpl`, `ExternalServicesPropertiesCommandFromApiJsonDeserializer`).
   - Supported properties (`ExternalServicesConstants.SMSJSONinputParams`): `host_name`, `port_number`, `end_point` and `tenant_app_key`.
   
   ## Proposed implementation
   
   - Add `'SMS'` to `serviceNames`, with labelled fields for the four properties: port numeric, and `tenant_app_key` as a password input.
   - Never echo the stored app key back into the form in clear text. Show it as "set" or "not set" and send it only when changed.
   - Add a short help line linking the setting to SMS campaigns.
   
   ## RBAC
   
   | Action | Permission code | Typically granted to |
   |---|---|---|
   | View external service settings | `READ_EXTERNALSERVICECONFIGURATION`, derived by `AppUser.validateHasReadPermission("externalServiceConfiguration")`, or `ALL_FUNCTIONS_READ` / `ALL_FUNCTIONS` | system administrators |
   | Change settings | `UPDATE_EXTERNALSERVICES` | system administrators only |
   
   - `UPDATE_EXTERNALSERVICES` is in `scripts/permission-codes.json`.
   - The read code is computed at runtime and is not seeded in the snapshot. In practice, only users with `ALL_FUNCTIONS_READ` or `ALL_FUNCTIONS` can load this screen, and the UI should treat a 403 on load as "no access" rather than an empty form.
   - The gateway app key is a credential. Keep the screen restricted to administrators, mask the key, and make sure it never appears in toasts or error messages.
   
   ### UI expectations
   
   - Keep the existing route guard.
   - Gate Save on `UPDATE_EXTERNALSERVICES` with `[appRequiresPermission]`.
   - A read-only user sees the values (with the key masked) but no enabled Save.
   
   ## Acceptance criteria
   
   - [ ] SMS gateway settings can be viewed and saved, and SMS campaigns can use the gateway.
   - [ ] The app key is masked and only sent when changed.
   - [ ] Save is gated on `UPDATE_EXTERNALSERVICES`, and a 403 on load is handled.
   - [ ] Unit tests cover the payload, the masking and the gating.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@fineract.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] External services: add the SMS (message gateway) configuration [fineract-backoffice-ui]

Posted by "Aman-Mittal (via GitHub)" <gi...@apache.org>.
Aman-Mittal closed issue #790: External services: add the SMS (message gateway) configuration
URL: https://github.com/apache/fineract-backoffice-ui/issues/790


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] External services: add the SMS (message gateway) configuration [fineract-backoffice-ui]

Posted by "Aman-Mittal (via GitHub)" <gi...@apache.org>.
Aman-Mittal commented on issue #790:
URL: https://github.com/apache/fineract-backoffice-ui/issues/790#issuecomment-6211226372

   ## Business process flow
   
   ```mermaid
   sequenceDiagram
       actor Admin as System administrator
       participant UI as External Services screen
       participant F as Fineract
       participant GW as SMS gateway
       Admin->>UI: Select SMS
       UI->>F: GET /externalservice/SMS
       F-->>UI: host_name, port_number, end_point, tenant_app_key set or not
       Admin->>UI: Edit values, app key only if changing
       UI->>UI: hasPermission(UPDATE_EXTERNALSERVICES)?
       UI->>F: PUT /externalservice/SMS
       F-->>UI: 200
       Note over F,GW: SMS campaigns now send through the gateway
       F->>GW: Outbound messages
   ```
   
   ## UI mockup
   
   ```text
   ┌ External services ── [ S3 ] [ SMTP ] [ Notification ] [▶ SMS ] ──────────┐
   │ Host name *        [ sms-gateway.internal      ]                         │
   │ Port *             [ 9191 ]                                              │
   │ End point *        [ /sms/v1/send              ]                         │
   │ Tenant app key     ●●●●●●●● (set)   [Change]                             │
   │ Used by: SMS campaigns, SMS notifications                                │
   │                                                       [Save]             │ ← UPDATE_EXTERNALSERVICES
   └──────────────────────────────────────────────────────────────────────────┘
   (Read-only administrator: same view, key masked, Save disabled)
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org