Page tree
Skip to end of metadata
Go to start of metadata

This page contains a list of possible Folio Architectural changes for the Folio platform which are under consideration by the Technical Council. Some of these are actively under discussion, while others are intended for a later discussion. Once architectural changes have been agreed upon they will be reflected in the actual Folio Architectural Blueprint.


StatusCategoryItemSummaryPlanWhyTimingRelated JiraChampionParticipants
ABI-001Under DiscussionPlatformAES: pre- and post-filtersReinstate mod-aes to allow transaction data streaming directly from Okapi. The current implementation depends on Okapi filter functionality.
  • Validate changes to Okapi from Jan 2019 (MODAFILT-6)
  • Deploy mod-aes to an environment and qualify
  • Provide solution for max-headers problem
  • Depends on pending auth redesign
  • Enhance mod-aes implementation as needed
  • Release mod-aes as part of build.

  • 2020-Q2 design
  • 2020-Q3 development

ABI-002Under DiscussionMulti-TenancyCross-Tenancy SupportAllows selective and controlled data sharing between separate tenants in Folio. This addresses the needs of Institutions or Consortia who need to selectively share data between their member organizations. At present Folio supports only modeling as separate tenants (share nothing) or single tenant (share everything).
  • Review strawman proposal from Spitfire Team.
  • Formulate a platform-level solution
    • Identify required changes from Okapi
    • Identify required changes from RMB
    • Design mod-tenant module to arbitrate access between tenants
    • TBD

  • 2020-Q2 design
  • 2020-Q3 development

ABI-003Pending DiscussionUsersSystem and Tenant level usersIntroduce the notion of tenant-level and system-level users. This allows operations to be performed in the context of the entire tenant (tenant-level) or the platform (system-level). Accordingly these classes of users would be protected from casual user management and provided with suitable permissions.
  • Spike to gather requirements including related tech-debt items
  • Implement support for user classes (mod-users)
  • Retrofit solution to existing implementations that have temporary solutions: Edge APIs; mod-pubsub.

2020-Q2 design and development; 2020-Q3: released
Craig McNally
ABI-004Under DiscussionMulti-TenancyDatabase Connectivity: tenant; interface; methodAllow database connectivity to be specified on a per tenant basis. Currently Folio only supports database connectivity to be specified at the module level
  • Create a solution proposal that allows flexibility for connectivity specification through RMB.
    • Primary goal is to provide tenant-level specification
    • Solution should allow for eventual interface-level specification as well and possibly method-level
  • Implement RMB changes to allow tenant-level connectivity

2020-Q2 design and development; 2020-Q3: released

FOLIO-1794 - Getting issue details... STATUS

ABI-005Under DiscussionPlatformAuthN/Z Refactoring

Refactoring of authentication and authorization address:

  • Performance issues related to token signature/generation
  • Protocol limitations wrt header size limitation and security best practices
  • Protocol complexity and comprehensibility

Plan:

  • design a new internal Authn/z protocol (Okapi ↔ mod-authtoken)
  • Favour standard API design (RAML/JSON) implementation (handler vs filter)
  • Provide a solution with high level of cacheability

2020-Q2 Design

2020-Q2 Development

FOLIO-2523 - Getting issue details... STATUS

ABI-006Suggested for evaluationRefactor OkapiTenant Context (runtime)Split out Okapi tenant management into "mod-tenant". Intersects with cross-tenancy functionality.





ABI-007Suggested for evaluationRefactor OkapiDependency ManagementDedicated global registry for Folio dependencies





ABI-008Suggested for evaluationRefactor OkapiRegistry (runtime)Split out Okapi management of registered modules and interfaces.





ABI-009Suggested for evaluationRefactor OkapiTenant APIs (admin)See below





ABI-010Suggested for evaluationMulti-TenancyTenant ManagementA administrative component for tenant provisioning and upgrading (including data upgrading). Refactoring the TenantAPI functionality from Okapi forms the basis





ABI-011Suggested for evaluationSearchSearch EngineIntroduce a dedicated search engine (e.g. ElasticSearch) for performance reasons. Also provides cross-tenant searching.





ABI-012Suggested for evaluationAutomationCamundaAdd an automation engine for Folio





ABI-013Suggested for evaluationUsers

Roles

is this the same as Team/Group concept (data ownership)?

Create support for formalized Roles within Folio





ABI-014Suggested for evaluationPlatformGraphQLAdopt GraphQL as a API calling convention in Folio





ABI-015Suggested for evaluationRelease ManagementApplication packagingSupport the distribution of "Applications" separate from monolithic Folio releases.





ABI-016Suggested for evaluationUsersSSOExtend SSO functionality to delegate the details of user management and authentication to external systems. Avoid the need to duplicate user records in Folio





ABI-017Suggested for evaluationCodexCodex

Next generation of Codex functionality

  • beyond Codex Search






ABI-108Suggested for evaluationInstrumentationOkapi/modules

Define instrumentation capabilities, including:

  • logging formats and structure (fields, patterns)
  • metrics: supported protocols (e.g JMX, Prometheus, etc) and measured quantities
  • integration with third-part tools, including log aggregators (ELK, CW, etc), time series databases (Prometheus), service mesh solutions (e.g Istio, X-ray)




  • No labels