...
Quick change based on the requirement and easy to deploy.
Any time/ anyone(authorized) / any flow/menu text can change quickly.
Add/Edit change the text for Menu options.
...
How to upload a local file to blob storage.
Versioning and rollback for files.
Secure (Only authorized users can access)
...
Using Jenkins job where we can upload a file while build and deploy of the job.
...
Download and upload files from blob through Jenkins with the following process
Only the owner/authorized user can log in to Jenkins.
Using Jenkins azure plugins we can parameterize the build.
We can choose which file from local and upload in specified blob storage.
Build a chatbot with a new configuration.
Upload artifact and deploy.
Pros:
Easy to maintain, add, and modify any time Menu options and query answers just by uploading the JSON object.
We can keep/maintaining all versions of files.
It will help to revert back to the old version of files if something went wrong with the new version of files.
It's secure since the only authorized user can upload and download.
Solution 2:
Create a separate application for accessing and modifying the file.
User onboard via API(backend)
Share credentials with user
For creating the files in a blob it requires azure services keys.
...
...
Pros:
Easy to create and update config JSON using API’s
Code Block |
---|
Create
{{host}}/chatbot/config/create
Update
{{host}}/chatbot/config/update |
For every new update, it will create a new file with a version number.
Easy to roll back to the older version.
Since it is a login based app so only an authorized person only can do.
Chatbot download/update configurations and build process:
Enable load and execute config from AWS AZURE container for a chatbot.
Make literals and chart flow configurable.
Keep files in blob storage public accessible.
While doing a build for chatbot/router run the below commands in the docker file
Code Block FROM node:10.19.0 as builder WORKDIR /app COPY . /app ADD http://source.file/config/literals /config/literals.js ADD http://source.file/config/chatflow /config/chatflow.js RUN npm install FROM node:10.19-slim COPY --from=builder /app . EXPOSE 4000 8443 CMD [ "node", "appRest.js" ]
For every build, it will download it from the blob and add it
/router/config/*
files.So now we can change only those required files and do build and deploy
Benefits:
Easy to maintain, add, and modify any time Menu options and query answers.
Now it's configurable from outside chatbot so it's easier to deploy.
We can keep/maintaining all versions of files.
It will help to revert back to the old version of files if something went wrong with the new version of files.
Risks:
Only authorized users can upload and edit the config.
Only a tech person can do it over, Jenkins
Solution 2:
Create a separate application for accessing and modifying the file
User onboard via API(backend)
Share credentials with user
...
Code Block |
---|
Create
{{host}}/chatbot/config/create
Update
{{host}}/chatbot/config/update |
This will take place in Jenkins job, Any owner can update config.
Benefits:
Easy to create and update using API’s
Jenkins job to read and update config using API.
non-tech guys can easily update using API
Risks:
Can't revert back to the old version config.
...