How do I create custom stanzas in MongooseIM? - erlang

I need a way to create customized stanzas and have mongooseIM recognize them and store the data accordingly inside of a given database such as mysql for later retrieval.
The reason I want to do this is because an app that I am building has a chat that requires complex querying based on sub objects'parameters. Also anything a user does inside of the app but outside of the chat like change the title of the group chat or like a post, it is logged inside of the chat as a log message with the given postId and userId.
So ideally I want it to do something like this:
<postId>1</postId> //So that I can query by post id
<description>Hello</description> //Data for clients to update real time
<userId>1</userId> //also want to be able to query the db by this.
all these variables should be saved into the database that is provided for MAM inside of the MongooseIM

You need to rite your custom mod in erlang. Here is how you can start on this :
https://mongooseim.readthedocs.io/en/latest/user-guide/Getting-started/
Build and install from source code
To build and install MongooseIM from source code, do the following:
Clone the Git repository:
 git clone https://github.com/esl/MongooseIM.git
Go to your MongooseIM directory.
Run the following command: make rel.
In the code You will see apps/ejabberd/src
Write you mode these and compile to get bin file and move the bin files to the release.

Related

save/load thingsboard configuration

Is it possible to somehow serialize current Thingsboard (let's call it TBoard) configuration, save it and than latter load saved configuration on TBoard startup.
I am specifically interested in loading device profiles, rule chains, and dashboards.
I want to save configuration together with my project in git repository so than latter I could just use docker-compose to start multiple services from project (let's call them sensors) and single TBoard instance with saved configuration which will be used for collecting telemetry from sensors and drawing dashboards.
Another reason for saving configuration is what happens if for some reason TBoard container crashes or somehow get corrupted so it can't be started again, would I have to click on the things again in order to create all device profiles, dashboards, configure rule chains ... etc etc ... ?
Regarding this line
I am specifically interested in loading device profiles, rule chains, and dashboards. I want to save configuration together with my project in git repository
I have just recently implemented version control for my Thingsboard deployment. The way i am doing it is with the python REST client.
I have written functions to export all dashboards/data converters/integrations/rule chains/widgets into json files which I save into a github repository.
I have also written the reverse script to push the stored files to a fresh environment, essentially "flashing" it. Surprisingly, this works perfectly.
I have an idea to publish this as a package, but it's something I've never done before so I'm unsure if I will get to it.
Just letting you know that it is definitely possible to get source control operational via the API.

Azure DevOps secure file guids

In my ADO build pipline, I have a secure file download step. When we branch versions, we use powershell to do the heavy lifting with cloning build definitions and updating settings/info in the cloned pipeline.
One issue I've run into is that the Secure File Download step doesn't accept variables, and in the UI you can only select names of files that already exist, so we've had to manually update it after every new branch we create.
I've grabbed the definition task step in powershell (as $step) and was hoping I could set the $step.inputs.fileInputs to a variable I assign to something like cert-$newVersion, however it currently is set to a guid.
Does anyone know if it possible to get the guid of secure files in ADO via the API or have a solution?
Does anyone know if it possible to get the guid of secure files in ADO via the API or have a solution?
Yes. This API exists.
You could try to use the following Rest API:
Get https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/distributedtask/securefiles?api-version=6.1-preview.1
Result:
You could get the secure file GUID based on the file name.

Performing denodo tasks from Jenkins

I am trying a create a working prototype for performing denodo activities from my Jenkins server.
Steps that i want to perform are :
Import a VSQL file from GIT to Denodo from Jenkins.
Create a view in Denodo from Jenkins.
Run this VSQL file in Denodo from Jenkins.
I am new to Denodo world and i am not sure if Denodo has any APIs for doing this.
Can someone let me know if this is really possible? If so where can i find a solution for this requirement. I tried searching in the internet for last few days, but couldn't find a solution.
The problem why you don't find to much on the web for this is that the files and query language in denodo is called vql not vsql. Try searching for that, you will find a lot there.
Anyways about your problem:
You have two options to work with CI and CD in Denodo. If you use Jenkins and just want to create views based on actions in other systems, e.g. create a base view as soon as a new table is created in the source you can just send the vql create script (containing create wrapper an create view) via jdbc or odbc to the server. For that create a technical user on denodo and load the driver to the jenkins server.
The other option is if you are using Denodo 7 to use the solution manager. There you have a rest API where you can create Revisions, test them on different environments and deploy them. Not sure if you can create a revision based on vql code that comes from Jenkins, but I think this should be possible.

Remove existing CloudCode from an app

I set up CloudCode for my app using the instructions found in the Parse documentation. Unfortunately I gave it a poor name and it is placed in an undesirable location. I would like to remove it and recreate it.
I have created a new CloudCode and moved the code into that. But I did create a Scheduled Job that uses a function in the CloudCode from the old location. Is there a special process I need to go through in order to get rid of the old CloudCode, or can I simply trash that directory and run parse deploy with the new CloudCode?
You can trash the directory and run parse deploy. Parse's CLI overwrites the entire directory structure remotely using the local copy. Your instincts here are correct.

TFS: checkout from one server, checkin to another

I've got a need to checkout an entire source tree out of one server and check it into another server. I'm attempting to script this into a final builder script, but am running into some snags. I'm able to check everything out, but when I attempt to check it into the new server it tells me there are no pending changes. Obviously I'm missing something if this is even possible.
Anyone done something similar to this or know of a way I might accomplish this?
One more thing, if the src is empty on server 2 would I have to manually add the files before I can update them?
I would guess that the reason that TFS is saying no pending changes is that you haven't checked out the files from Server 2. This could get kind of ugly using a single directory, so I would recommend trying this:
Get (latest or specific version) from server 1 to
C:\Server1Files...
Get and Check out for edit everything from server 2 to
C:\Server2Files...
Copy from C:\Server1iles1\ to C:\Server2Files
Check in from C:\Server2Files
I think TFS is going to complain if you try to use a single directory here, as it would see the same directory mapped to two different workspaces (even though they're on different instances of TFS).

Resources