Skip to content

refactor: make AICoreService tenant-agnostic & DI-friendly #62

@Schmarvinius

Description

@Schmarvinius

Scope: API redesign of AICoreService + downstream wiring; biggest behavioral change.

  • Drop tenantId parameter everywhere in the public API:
  • resourceGroupForTenant(String) → resourceGroup() (impl reads tenant via TenantProviderService).
  • Remove isMultiTenancyEnabled() from the interface (consume cds.multiTenancy.* standard CAP property internally instead of custom flag).
  • Remove getRetry() from the interface (move to internal/abstract base or expose differently); javadoc "a bit unexpected to find this here".
  • Drop @link references to AICoreServiceImpl / MockAICoreServiceImpl from interface javadoc – an interface must not know its impls.
  • Consider segregating into:
  • resource-group / deployment management
  • inference (provide ApiClient inferenceClient(ModelDeploymentSpec) shortcut, remove explicit resourceGroupId/deploymentId params).
  • Make the service injectable via Spring (@Autowired AICoreService, optional @Qualifier for multi-model).
  • Update RecommendationClientResolver, RecommendationConfiguration, FioriRecommendationHandler, README "Programmatic Usage" code samples accordingly.

Metadata

Metadata

Assignees

Labels

Newai-corePull request that touch the ai-core module

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions