Read License Stats
Check current license statistics and send alerts.

This flow is a good demonstration of using gRPC request to an internal Cells service, which result is returned in JSON format,
then using Go Template with gval
function to compute percentage of license usage.
One can eventually append a "Send Email" action at the end to alert administrator that license limits are soon to be reached.
Parameters
Name | Type | Default | Mandatory | Description |
---|---|---|---|---|
ExpirationDays | integer | 30 | false | Check that license does not expire in less than XX days. |
UsersUsage | integer | 90 | false | Check that less that there are currently less than XX% of allowed users. |
Trigger Type
Manual
JSON Representation
{
"Label": "Read License Stats||Check current license statistics and send alerts||mdi mdi-certificate",
"Owner": "pydio.system.user",
"Custom": true,
"Actions": [
{
"ID": "actions.cmd.rpc",
"Label": "License Stats",
"Parameters": {
"method": "LicensingService.LicenseStats",
"request": "{}",
"service": "pydio.grpc.license"
},
"ChainedActions": [
{
"ID": "actions.scheduler.log-input",
"Label": "Alert #users",
"ActionOutputFilter": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/jobs.ActionOutputSingleQuery",
"value": "anR7e2d2YWwgIiRbMF0uQWN0aXZlVXNlcnMgLyAkWzBdLkxpY2Vuc2UuTWF4VXNlcnMgPiAkWzFdLzEwMCIgLkxhc3RPdXRwdXQuSnNvbkFzVmFsdWUuTWFwIC5Kb2JQYXJhbWV0ZXJzLlVzZXJzVXNhZ2V9fQ=="
}
]
},
"Label": "90% of users"
},
"Parameters": {
"message": "Users usage {{.LastOutput.JsonAsValue.Map | gval \"$[0].ActiveUsers / $[0].License.MaxUsers * 100\"}}%",
"taskLogger": "true"
}
},
{
"ID": "actions.scheduler.log-input",
"Label": "Alert Date",
"ActionOutputFilter": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/jobs.ActionOutputSingleQuery",
"value": "atQBe3skaG91cnM6PSBndmFsICIkWzBdKjI0IiAuSm9iUGFyYW1ldGVycy5FeHBpcmF0aW9uRGF5c319e3skbW9kOj0gY2F0ICRob3VycyAiaCIgfCBub3NwYWNlfX17eyRsaW1pdCA6PSBub3d8ZGF0ZV9tb2RpZnkgJG1vZHx1bml4RXBvY2h9fXt7Z3ZhbCAiJFswXS5MaWNlbnNlLkV4cGlyZVRpbWUgPCAkWzFdIiAuTGFzdE91dHB1dC5Kc29uQXNWYWx1ZS5NYXAgJGxpbWl0fX0="
}
]
},
"Label": "Check Expiration Date"
},
"Parameters": {
"message": "License will expire in less than {{.JobParameters.ExpirationDays}} days (on {{.LastOutput.JsonAsValue.Map.License.ExpireTime | fromStamp | date \"2006-01-02\" }})",
"taskLogger": "true"
}
}
]
}
],
"Parameters": [
{
"Name": "ExpirationDays",
"Description": "Check that license does not expire in less than XX days.",
"Value": "30",
"Type": "integer"
},
{
"Name": "UsersUsage",
"Description": "Check that less that there are currently less than XX% of allowed users.",
"Value": "90",
"Type": "integer"
}
]
}
Back to top