Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 Editors

  • ECAR files will be having absolute paths (Need discussion on how to solve)

  • Data stored in the DB’s

    streamingUrl

    • downloadUrl

    • 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

cname_properties:[“downloadUrl“, “appIcon”, “posterImage”]
cname: [ {
"type": “cdn”"blob",
"cname": “https"https://cdnstore.diksha.gov.in”in",
"default": “https"https://cdn-ntpproductionntpproductionall.blob.core.windows.net/ “, }, { type: “blob”, cname: “https://store ",
"properties": [
"downloadUrl",
"artifactUrl",
"streamingUrl",
"posterImage",
"previewUrl"
]
},
{
"type": "cdn",
"cname": "https://cdn.diksha.gov.in”in",
"default": “https"https://ntpproductionallcdn-ntpproduction.blob.core.windows.net/ “, "
},
]

cname_: Value to be used to replace

default: Value that has to be replaced with CNAME

properties: Service will be looking for these properties while writing. Any aboslute path sending for these properties will get updaetd with CNAME value

...

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