Search

US-12619686-B2 - Software package sharing to restricted landscapes

US12619686B2US 12619686 B2US12619686 B2US 12619686B2US-12619686-B2

Abstract

In an example embodiment, an alternative technical method for sharing a public package to a restricted landscape that avoids a content manager service (CMS) making a call to a tenant management service (TMS). This overcomes any issues involved with the CMS making the call to the TMS, while still permitting the sharing of public packages within the restricted landscape. More particularly, a poll-pull based mechanism is introduced where the restricted CMS periodically polls and checks for any packages shared with it from a public CMS and, if found, pulls the tenant FQDN from the public CMS. The restricted CMS will then fire a request to the TMS to retrieve the tenant metadata.

Inventors

  • Sahana Durgam Udaya
  • Prasadh S

Assignees

  • SAP SE

Dates

Publication Date
20260505
Application Date
20230412

Claims (20)

  1. 1 . A system comprising: at least one hardware processor; and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising: periodically sending a request from a restricted content manager service to a public content manager service to check for packages shared with a tenant of a tenant management service associated with the restricted content manager service, the public content manager service having a repository for storage of packages and not directly communicating with the tenant management service; in response to the periodic sending, receiving tenant metadata for one or more tenants with which the public content manager service determines one or more packages have been shared, the one or more tenants associated with the restricted content manager service; obtaining, by the restricted content manager service, tenant details from the tenant management service, based on the tenant metadata; and causing, by the restricted content manager service, the public content manager service to update sharing permissions for one or more tenants corresponding to the tenant details by passing the tenant details to the public content manager service.
  2. 2 . The system of claim 1 , wherein the public content manager service stores, for a shared package, package details and tenant details corresponding to one or more tenants with which the package is to be shared in an interim table.
  3. 3 . The system of claim 2 , wherein the causing results in the public content manager service updating a permission table with the tenant details.
  4. 4 . The system of claim 3 , wherein the causing further results in the public content manager service clearing any entries associated with the package details from the interim table.
  5. 5 . The system of claim 1 , wherein the tenant details include a fully qualified domain name (FQDN) of any tenant with which the packages are to be shared.
  6. 6 . The system of claim 1 , wherein the tenant metadata includes a uniform unique identifier (UUID) for any tenant with which the packages are to be shared.
  7. 7 . The system of claim 2 , wherein the interim table is stored in an in-memory database.
  8. 8 . A method comprising: periodically sending a request from a restricted content manager service to a public content manager service to check for packages shared with a tenant of a tenant management service associated with the restricted content manager service, the public content manager service having a repository for storage of packages and not directly communicating with the tenant management service; in response to the periodic sending, receiving tenant metadata for one or more tenants with which the public content manager service determines one or more packages have been shared, the one or more tenants associated with the restricted content manager service; obtaining, by the restricted content manager service, tenant details from the tenant management service, based on the tenant metadata; and causing, by the restricted content manager service, the public content manager service to update sharing permissions for one or more tenants corresponding to the tenant details by passing the tenant details to the public content manager service.
  9. 9 . The method of claim 8 , wherein the public content manager service stores, for a shared package, package details and tenant details corresponding to one or more tenants with which the package is to be shared in an interim table.
  10. 10 . The method of claim 9 , wherein the causing results in the public content manager service updating a permission table with the tenant details.
  11. 11 . The method of claim 10 , wherein the causing further results in the public content manager service clearing any entries associated with the package details from the interim table.
  12. 12 . The method of claim 8 , wherein the tenant details include a fully qualified domain name (FQDN) of any tenant with which the packages are to be shared.
  13. 13 . The method of claim 8 , wherein the tenant metadata includes a uniform unique identifier (UUID) for any tenant with which the packages are to be shared.
  14. 14 . The method of claim 9 , wherein the interim table is stored in an in-memory database.
  15. 15 . A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising: periodically sending a request from a restricted content manager service to a public content manager service to check for packages shared with a tenant of a tenant management service associated with the restricted content manager service, the public content manager service having a repository for storage of packages and not directly communicating with the tenant management service; in response to the periodic sending, receiving tenant metadata for one or more tenants with which the public content manager service determines one or more packages have been shared, the one or more tenants associated with the restricted content manager service; obtaining, by the restricted content manager service, tenant details from the tenant management service, based on the tenant metadata; and causing, by the restricted content manager service, the public content manager service to update sharing permissions for one or more tenants corresponding to the tenant details by passing the tenant details to the public content manager service.
  16. 16 . The non-transitory machine-readable medium of claim 15 , wherein the public content manager service stores, for a shared package, package details and tenant details corresponding to one or more tenants with which the package is to be shared in an interim table.
  17. 17 . The non-transitory machine-readable medium of claim 16 , wherein the causing results in the public content manager service updating a permission table with the tenant details.
  18. 18 . The non-transitory machine-readable medium of claim 17 , wherein the causing further results in the public content manager service clearing any entries associated with the package details from the interim table.
  19. 19 . The non-transitory machine-readable medium of claim 15 , wherein the tenant details include a fully qualified domain name (FQDN) of any tenant with which the packages are to be shared.
  20. 20 . The non-transitory machine-readable medium of claim 15 , wherein the tenant metadata includes a uniform unique identifier (UUID) for any tenant with which the packages are to be shared.

Description

TECHNICAL FIELD This document generally relates to computer software analytics software. More specifically, this document relates to software package sharing to restricted landscapes. BACKGROUND Analytics software allows individuals and entities such as businesses to obtain various analytics content, such as summaries, predictions, models, stories, visualizations, and value-driver trees (VDTs), typically regarding functioning of an organization. An example of analytics software is the SAP Analytics Cloud™ (SAC), from SAP SE of Walldorf, Germany, which combines business intelligence, planning, and predictive capabilities. In any business intelligence/analytics platform, the analytics content plays a central role in discovering the unseen patterns in an organization. Hence, sharing of the analytics content across users is very helpful for better collaboration. Additionally, standard content templates can be reused by different users, who may then have those templates applied to their own data. The infrastructure for sharing analytics content is an Analytical Content Network (ACN). Shared SAC content is called a “package.” BRIEF DESCRIPTION OF DRAWINGS The present disclosure is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements. FIG. 1 is a block diagram illustrating the structure of a package, in accordance with an example embodiment. FIG. 2 is a sequence diagram illustrating a method of how a package is created. FIG. 3 is a sequence diagram illustrating a method for sharing a public package, in accordance with an example embodiment. FIG. 4 is a sequence diagram illustrating an alternative method for sharing a public package, in accordance with an example embodiment. FIG. 5 is a flow diagram illustrating a method for sharing a public package with a restricted ContentManager Service (CMS), in accordance with an example embodiment FIG. 6 is a flow diagram illustrating another method for sharing a public package with a restricted CMS, in accordance with an example embodiment. FIG. 7 is a block diagram illustrating an architecture of software, which can be installed on any one or more of the devices described above. FIG. 8 illustrates a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment. DETAILED DESCRIPTION The description that follows discusses illustrative systems, methods, techniques, instruction sequences, and computing machine program products. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various example embodiments of the present subject matter. It will be evident, however, to those skilled in the art, that various example embodiments of the present subject matter may be practiced without these specific details. An ACN is a global content network, which can provision or share any SAC content. It can also be connected to any SAC tenant, allowing it to provision and share content to individual SAC tenants as well. An SAC content creator can create SAC content in the form of stories, models, dimensions, connections, VDTs, and so forth. If authorized, the SAC content creator can then export this content from the SAC tenant to ACN by creating a content package, which can contain any number of these content items. The package can then be shared with multiple other tenants. An SAC content user (a user who can consume or interact with content) can view all available content packages in their listing and import those packages relevant for their analytic workflows. This includes public content (templates or demo content) and private content (shared privately with them). The packages themselves are essentially pre-built collections of dashboards, reports, data models, and other analytics content that are designed to help organizations quickly gain insights and make better decisions based on their data. The package contains the details of each object present in the package, the dependency information between those objects, and an overview which summarizes the content details. FIG. 1 is a block diagram illustrating the structure of a package 100, in accordance with an example embodiment. As can be seen, the package includes package metadata 102, and a plurality of objects 104A-104N. The package metadata 102 may include information about the package, the objects, and the dependencies among the objects. The following is an example of package metadata, in accordance with an example embodiment. {  “info”: {   /* Package version information */  },  “objects”: [   {    “objectType” : “RESOURCE”,    “objectName” : “Annual Reports”,    “objectId” : “objectIdA”,    “parentResId” : “PUBLIC”,    “ancestorPath”  : [ ]   },   {    “objectType” : “RESOU