Skip to content

feat: Cloud / On-Premise split — separate packages, releases, and variant detection #88

Description

@MagPasulke

Context

Raised during design of #46 (export/import rulesets). The export feature uses a virtual element with a clickable URL pointing to the HTTP export endpoint. In ABAP Cloud, the service path is deterministic (/sap/bc/http/sap/zasis_ext_api_cld/...). In on-premise (SICF), the path is user-defined — we cannot hardcode it.

This surfaced the broader need to properly separate cloud and on-premise concerns.

What needs to be considered

1. Package split for the service layer

  • Cloud cannot contain objects that are not cloud-compatible (leads to activation errors)
  • The srv/ package currently has both zasis_cl_http_handler (SICF/on-prem) and zasis_cl_http_handler_cld (IF_HTTP_SERVICE_EXTENSION/cloud)
  • Need separate packages: e.g. srv_cloud/ and srv_onprem/ (or similar)
  • Shared core logic (zasis_cl_http_handler_core, interfaces, validator) stays in a common package

2. Variant detection (zasis_if_version)

  • Introduce a constant or interface attribute that indicates which variant is installed (cloud vs on-prem)
  • Could be used at runtime to branch behavior (e.g. virtual element URL construction)
  • Each release artifact would set this differently

3. Separate releases / branches

  • Users should be able to download only the cloud or on-prem release
  • Possible approaches:
    • Separate git branches per variant
    • Single branch with conditional packaging (abapGit package exclusion)
    • Build-time artifact generation (zip per variant)
  • Release-please would need to handle this

4. Virtual element URL for on-prem

  • On-prem: SICF node path is user-defined → cannot hardcode in virtual element
  • Options: configurable table, system setting, or simply hide the export link on on-prem

5. Testing implications

  • Need to verify both variants independently
  • abaplint config may need variant-specific rule sets (cloud syntax restrictions vs standard)

Current decision

For #46 (export feature), we scope the virtual element URL to cloud only. On-prem users can still call the HTTP endpoint directly if they know their SICF path. The clickable link in the UI is cloud-only until this issue is resolved.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions