Licensing issues

82 views
Skip to first unread message

Yves Berquin

unread,
Jul 25, 2014, 9:10:47 AM7/25/14
to atlassian-...@googlegroups.com
Hello,

I'm in the first days of running a connect add-on with a paid-by-Atlassian model.

I'm trying this resource as explained in the doc: https://developer.atlassian.com/static/connect/docs/concepts/licensing.html

Accessing License Details
In addition to the lic parameter, an add-on can use a REST API resource to get an instance's license for this plugin. Note, you will need to declare READ scope in order to use this resource.
The license resource is exposed as a REST resource at this URL:
https://{HOSTNAME}:{PORT}/{CONTEXT}/rest/atlassian-connect/latest/license
Among other information, the plugin can use the resource to discover:
  • whether the plugin license for an instance is valid
  • the organisation name, SEN and contact email associated with the license
  • the number of users allowed by the current license
  • the expiration date of the license
  • license type, such as commercial or academic

Now, in reality here's what happens. All this in an add-on that declared the READ scope

Case 1: 
Try this resource in a browser. 
It correctly says that you need to issue this from an add-on. Good

Case 2: 
Issue this on an instance that has your plugin installed, but the Free Trial has not been started already.
You get an error 401 : <title>Oops, you&#39;ve found a dead link. - JIRA</title>

Case 3:
Issue this on an instance that has your plugin installed, and has started the Free Trial
You get this:
{"valid":true,"evaluation":true,"nearlyExpired":false,"licenseType":"DEVELOPER","creationDateString":"2014-07-25T21:06:08.585+08:00","organizationName":"[Organization]","enterprise":true}

This is the big issue I have - no contact email, no SEN, no numbers of users, no expiration date and a license type that I don't understand: DEVELOPER.

Anything I'm missing (again)?

Yves


Yves Berquin

unread,
Jul 25, 2014, 4:07:47 PM7/25/14
to atlassian-...@googlegroups.com
Follow up,

After some more digging I found 4 customers who I can actually get the data from.
They are all like this:
{
valid: false,    // or true
evaluation: true,
nearlyExpired: false,
maximumNumberOfUsers: 2000,
licenseType: "COMMERCIAL",
creationDateString: "2014-07-24T17:00:00.000+03:00",
organizationName: "xxx",
contactEmail: "a...@xxx.com",
enterprise: false,
supportEntitlementNumber: "SEN-nnnnnn"
}

All of them have a maximumNumberOfUsers of 2000, which I just can't believe when I see the kind of company they are.
Could someone double check this?

Thanks
Yves

Peter Brownlow

unread,
Jul 27, 2014, 9:17:00 PM7/27/14
to atlassian-...@googlegroups.com
Hi Yves,

Case 2: I think that this is returning a 404 when the free trial has not been started. Was the 401 in your post a typo? If so, the 404 tells you that there is no license, which is true. Are you looking for more or different information in this case?

Case 3: I'm checking.

-Peter

Yves Berquin

unread,
Jul 27, 2014, 9:58:32 PM7/27/14
to atlassian-...@googlegroups.com
I don't think it was a typo. And I'm sure I copied the error text. This doesn't look a valid error text and/or status code to me.
I don't have this use case anymore at the moment, so I can't double check.

Yves

Yves Berquin

unread,
Aug 2, 2014, 11:45:47 AM8/2/14
to atlassian-...@googlegroups.com
More licenses mysteries ...
Context: paid Connect add-on
REST API endpoint: GET /rest/atlassian-connect/latest/license

What is the difference between 
  • a license that you just cannot retrieve (yielding a 404 - not found - you've found a dead link)
  • a license that you can retrieve but says it is not valid (json object returned, with valid set to false)
?

The first case seems to be what is supposed to happen when a customer installed your add-on but didn't click on start trial
(which doesn't seem a valid workflow to me but that's another story).

So what is the 2nd case?

Ben Woskow

unread,
Aug 4, 2014, 8:33:49 PM8/4/14
to atlassian-...@googlegroups.com
The second case (valid=false) is most likely a customer who installed and licensed your add-on and then unsubscribed from it. In this case the customer had a valid license once upon a time (thus the license resource no longer 404s), but at the current moment their license status is invalid.

Ben


--
You received this message because you are subscribed to the Google Groups "Atlassian Connect Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to atlassian-connec...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Yves Berquin

unread,
Aug 5, 2014, 4:46:55 AM8/5/14
to atlassian-...@googlegroups.com
Hello Ben,

Thanks for your answer. I don't understand how this could happen though.
The very fact that the add-on can still query the license means that the add-on is still installed, otherwise the REST API would reject the request.
Or perhaps there is an unsubscribe that means you stop the free trial, but don't uninstall the add-on?

And I have yet another question. Here's the output of a license query. A valid, installed, in free trial customer:

{

valid
: true,
evaluation
: true,
nearlyExpired
: false,

maximumNumberOfUsers
: 2000,
licenseType
: "COMMERCIAL",

creationDateString
: "2014-08-04T02:00:00.000+12:00",
organizationName
: "...",
contactEmail
: "...",
enterprise
: false,
supportEntitlementNumber
: "SEN-xxx"
}


What is the creationDateString? Because it is not the start of the free trial, that's for sure. This customer has been using our add-on for more than a week and the date says yesterday.

Thanks 

Ben Woskow

unread,
Aug 5, 2014, 2:49:45 PM8/5/14
to atlassian-...@googlegroups.com

Thanks for your answer. I don't understand how this could happen though.
The very fact that the add-on can still query the license means that the add-on is still installed, otherwise the REST API would reject the request.
Or perhaps there is an unsubscribe that means you stop the free trial, but don't uninstall the add-on?

Right. The customer has unsubscribed from the add-on (such that they'll stop paying for it) but they didn't uninstall it.

What is the creationDateString? Because it is not the start of the free trial, that's for sure. This customer has been using our add-on for more than a week and the date says yesterday.

This is the date on which the license was generated. For OnDemand customers who pay monthly, this date will be updated once per month, regardless of when the actual subscription began. 
Reply all
Reply to author
Forward
0 new messages