CNAME: CNAME records can be used to alias one name to another. CNAME stands for Canonical Name.
...
Plugins loading in editors & packing as part of ECAR.
Generation of pre-signed URL used by EditorsECAR files will be having absolute paths (Need discussion on how to solve)
Data stored in the DB’s
streamingUrldownloadUrl
variants
----------------
previewUrl
appIcon
posterImage
artifactUrl
toc_url
thumbnail
assetMap
...
Don’t store the absolute paths in the DB’s. Always store the path with CNAME as prefix.
example:
https://store.diksha.gov.inin/tpntp-content-production/content/assets/do_31329674183946240014126/a-boy-animation-1.mp4
Configure the service with CNAME value as shown below
...
The list of CNAME_properties can be configured by any adopters as per their schema properties.
Challenges:
...
We can handle only CNAME as part of this scope. Any domain name changes requires data migration as the DB stores the full path with CNAME+Domain.
Note: This can be generalised by handling the CNAME+Domain on service side while sending the responses by storing only relative paths in the DB.ECAR is packaged with CNAME values. So any domain change required data migration by republishing the ECAR’s(Content republish).
StreamingUrl will required the data migration as it is specific to CSP providers. This may requires regeneration of all streaming URL’s with new CSP provider.
JOB Files to be addressed:
asset-enrichment -> org.sunbird.job.assetenricment.helpers.ImageEnrichmentHelper -> enrichImage method -> optimizeImage method
asset-enrichment -> org.sunbird.job.assetenricment.helpers.OptimizerHelper -> replaceArtifactUrl method
asset-enrichment -> org.sunbird.job.assetenricment.helpers.VideoEnrichmentHelper ??
publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.ExtractableMimeTypeHelper -> getCloudStoreURL, updatePreviewUrl, getObjectWithEcar methods
publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.ContentPublisher -> updatePreviewUrl, getObjectWithEcar methods
publish-pipeline -> content-publish -> org.sunbird.job.content.publish.helpers.CollectionPublisher -> getObjectWithEcar method