Outsystems Deployment API - Error 400 when creating an Application Version

Outsystems Deployment API - Error 400 when creating an Application Version

  

Hi,

I try to create some functionality around the new Outsystems Deployment API, but I get stuck with the following:

https://success.outsystems.com/Documentation/10/Reference/OutSystems_APIs/LifeTime_Deployment_A

PI#Environments_Applications_Versions_Create

I can read the environment keys and the last version of an application on a specific environment using the new API, but when trying to create a new version using the API, I get the following response, which doesn't help me any further.

{
  "Errors": [
    ""
  ],
  "StatusCode": 400
}

The errorlog is also not that helpful:

No Message and the following stack:

Stack:   bij sslifetimeapi.Actions.ActionRaise_ClientError(HeContext heContext, Int32 inParamStatusCode, String inParamMessage)
   bij sslifetimeapi.CsRESTExpose.Csv1.Csv1ControllerFlows.Flowv1ActionEnvironments_Applications_Versions_Create(HeContext heContext, String inParamEnvironmentKey, String inParamApplicationKey, STApplicationVersionCreateStructure inParamApplicationVersionCreate, RCText1Record& outParamApplicationVersionKey)


I've tried to call this API from POSTMAN and from Outsystems, but I always get the same error back.

Could somebody help me out with this question?

Kind regards, Remco Dekkinga

Hi Remco, 

Thank you very much for your post! It is great to see someone using these new APIs!

You should have received an error message from the API, can I ask what is the type of the application you are trying to tag and what are you passing to the API? Does it work for other ?


Cheers,

José Ramalho

Hi José,

The errormessage is empty :(, with a statuscode of 400.

It's the json code I pasted above.

I'm trying to create a version of a web application (not mobile). It's the only application that I've tried.

I'm sending something like this:

{
  "ChangeLog": "Automatic Deployment",
  "Version": "0.3",
  "ModuleVersionKeys": [
    "63146a06-06d3-4f9e-a4ca-abc7bb6950e5"
  ]
}

It looks like the preview from the reference manual, but I don't have the mobile versions part.

The ModuleVersionKeys are fetched from the output of the GetVersion method (where I do put a True in the IncludeModules).

I've also tried with an empty MobileVersions, but with the same empty errormessage coming back.

{
  "ChangeLog": "First release of iOS mobile app",
  "Version": "1.0.0",
  "MobileVersions": [
  ],
  "ModuleVersionKeys": [
    "63146a06-06d3-4f9e-a4ca-abc7bb6950e5"
  ]
}

Thanks in advance!

Hi again Remco,


Sorry for take this long to get back. Looking to your examples I can see you are passing a list of ModuleVersionKeys that is equal to the example we have on the documentation. That's is probably what you have wrong there ;)

In the ModuleVersionKeys, you need to include the current module version keys you have in the application in the given environment, otherwise it won't work. They are used for double checking that the version you are creating is indeed what you want.


I'm creating an example, as soon as I have it ready, I'll share here.

Let me know if it helps.


Solution

Hi again,


here is the sample to create a given version for the app itself. Just be aware that the app needs to be deployed to your dev environment that must be registered in lifetime, you need to create the site property authorization with the JWT token generated by lifetime and the endpoint to the lifetime api rest consumer.

Let me know if you have any further question.


Cheers!

Solution