Configure Oracle Cloud Infrastructure Object Store to Store Content
Use this topic to understand how you can integrate OCI Object Store with Launch Experience to manage content. The OCI Object store can be used as a default content repository in case you haven't integrated Launch with your own third party content management system.
For more information see Integrate Launch with Third Party Content Management Systems.
Prerequisites
Here are some prerequisites:
- Users who want to use this feature must already have the OCI object store connection details.
- The bucket having the the content must be authenticated earlier with a long term expiration date (this date decides when the authenticated URLS would expire), and must be named as bucket-launch-resource.
- Ensure that all the images you need are stored in the
images folder within the bucket, and all the
documents needed are stored in the documents folder
within the bucket.
To know more about creating buckets and preauthenticated requests, see the tasks Object Storage Buckets and Object Pre-Authenticated Requests in the Oracle Cloud Infrastructure Documentation on Oracle Help Center.
Here are the steps:
- Create a new ObjectStorage API object.
API: POST https://{CXIFHost}/admin/apis
- Create a new system descriptor.
API: POST https://{CXIFHost}/admin/systemDescriptors
- Create a new connection descriptor.
API: POST https://{CXIFHost}/admin/connectionDescriptors
The endpoint URL field should be object-storage host url
The endpoint URL must be indicated as https://<namespaceName>.objectstorage.<region>.oci.customer-oci.com/n/<namespaceName>.
For example, if the tenancy namespace name is cxcomms and the object storage is in the region us-ashburn-1, configure the endpoint URL as https://cxcomms.objectstorage.us-ashburn-1.oci.customer-oci.com/n/cxcomms.
You must configure authentication details to successfully connect to the OCI Object Storage. So, in fabric-facing-auth, configure the oci-http-signature details.
To configure the oci-http-signature, you must configure the API Key. If you haven't, go to the user profile section in the OCI console and on the Resources tab, select API Keys and follow the onscreen instructions to create the API Key. After you successfully create the key, you'll be prompted to download the private key file and can also view the user OCID, tenancy OCID, fingerprint, and region.
The following fields are mandatory in oci-http-signature:
- user-ocid: OCID of the user
- tenancy-ocid: OCID of the tenancy
- fingerprint: Fingerprint of the API Key
- private-key: Content of the private key file as a string
Note: The system descriptor field must be the ID of the system descriptor you created earlier. - Create a new routing criteria based on the path parameter
documentManagementSystemId.
API: POST https://{CXIFHost}/admin/routingCriteria
Ensure that the value os-cxcomms-us-ashburn-1 isn't changed and should remain fixed.
Note: Save the value of the criterion-link field as UNIXXXXX. - Update the gatekeepingrule.
After you create the API key, system descriptor and connection descriptor, a new gatekeepingrule is generated. You must update this gatekeepingrule with the new routing criteria that you created in the previous step.
API: GET https://{CXIFHost}/admin/gatekeepingRules
From the search results for obs-native in the endpoint name, get the ID of the corresponding record and use it to update gatekeepingrule using the following steps:
API → PUT https://{CXIFHost}/admin/gatekeepingRules/{id}
Reference link - admin/gatekeepingRules
- Create a new secret to store the pre-authenticated URL as a vault secret.
Use the same documentManagementSystemId that was provided in step 4 (OBS1 in this example) as the systemIdentifier.
Note: To create a pre authenticated URL see the task Object Pre-Authenticated Requests on Oracle Help Center.You must store the pre-authenticated URL in the OCI vault using the following API command:
API → POST https://{CXIFHost}/admin/extensibilitySecrets
- Verify the configuration using CXIF client credentials for
authorization.
GET <fabricGatewayURL>/api/documentIntegration/v1/<systemIdentifier>/objects?container=<object-store-bucket-name>
This would result in the following message: SUCCESS Http 200.