Passing parameters in SpagoBI REST 2.0 - fiware

I wanted to use SpagoBI 2.0 REST API:
http://docs.spagobi.apiary.io/#reference
Everything seems to be fine, reports are running fine on SpagoBI server, I can get all documents via:
http://spagobi-url/SpagoBI/restful-services/2.0/documents/
I can get subreport without parameter via:
http://spagobi-url/SpagoBI/restful-services/2.0/documents/document_label/content
But I don't know how to pass parameter to run subreport with parameter?
Any clues?
Thanks in advance!

your solution is fine, but you can simplify the request body with parameters information: you just need to specify the parameters' URL name and their value, for example:
[
{
"urlName": "Position",
"values": [
"Store Manager"
]
}
]
Pay attention to the fact that "subreport" means a report that is included into another bigger one, therefore your request was not so clear to me: I understood you were trying to execute just one "regular" report (that was not including other reports), is that right?
Hope this helps.
Best regards.
Davide

Related

converting dynamic content to JSON

I'm building a pipeline who sends a secret to the rest API of Azure key-vault with the Azure data factory tool (https://learn.microsoft.com/en-us/rest/api/keyvault/secrets/set-secret/set-secret). If I set the secret hardcoded then it works fine but if I replace it with my dynamic content variable it gives a newline error. Does anyone has a solution for this problem?
click here for an image of the error
The working code:
{
"values": "test"
}
the not working code:
{
"values": #variables('push_refresh_token')
}
Thank you #AnnuKumari-MSFT & #KoenVerschuren-6858 Posting your solutions as answer in community wiki to beneficial other community members for the similar issue.
Here is the workaround from MS Q&A:-
We need to add quotes to the variable with concatenate:- For
example:-
To set variable:
#concat('"', string(activity('get_auth_code').output.refresh_token),'"')
which is followed by in web;
#concat('{"value":', variables('push_refresh_token'),'}')

Concat a Subnet ID reference for azure bastion deployment

Can anyone see anything wrong with this? I'm trying to reference a resource in another resource group. I'm deploying a bastion host and want to reference a subnet in another resourcegroup (vnet rg)
This is what I have but it's not working, do I need to reference the subscription? It's badly formatted but tried everything i can thing of :(
"id": "[concat('/','subscriptions','/','parameters('SubscriptionId'),'/','resourceGroups','/',parameters('vnetResourceGroupName'),'/',providers','/','Microsoft.Network','/','virtualNetworks','/','parameters('vnetName'),'/','subnets','/','AzureBastionSubnet'))]"
I'm trying to get to this (ish)
"id":"/subscriptions/xxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxx/resourceGroups/rg-vnet/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/SubnetName"
When I try ot use resourceID
"id": "[resourceId(parameters('vnetResourceGroupName'), 'Microsoft.Network/virtualNetworks/', parameters('vnetName'), '/subnets/AzureBastionSubnet')]"
I get this error:
'resourceId': function requires exactly one multi-segmented argument which must be resource type including resource provider namespace. Current function arguments
'rg-vnet,Microsoft.Network/virtualNetworks/,vnet1,/subnets/AzureBastionSubnet'
I think its the commas between each segment causing the issue :(
Thanks in advance :)
Correct format:
"id": "[resourceId(parameters('vnetResourceGroupName'), 'Microsoft.Network/virtualNetworks/subnets', parameters('VNETName'),variables('subnetName'))]"

Unable to add Fine grain access for Elasticsearch service for Cloudformation

I am creating CloudFormation stack with Elasticsearch service, however it fails for AdvancedSecurityOptions, which works perfectly fine with aws es create-elasticsearch-domain
my JSON template snippet is below:
...
"AdvancedOptions": {
"rest.action.multi.allow_explicit_index": true
},
"AdvancedSecurityOptions": {
"Enabled": true,
"InternalUserDatabaseEnabled": false,
"MasterUserOptions": {
"MasterUserARN": "arn:aws:iam::1234567890:role/role_name"
}
},
"DomainName": {
"Ref": "ESDomainName"
}
...
I am unable to get this code working, any help related to fine grain access control would be really appreciated.
The AdvancedSecurityOptions is the latest addition to Amazon Elasticsearch service added recently as part of Fine Grained Access Control. This is available only via Console, CLI and API for now.
I am not sure if the thread is with outdated info, but according to the official AWS documentation on this link it should be possible to use the AdvancedSecurityOptions for Fine Grained Access Control. It even states that it is meant to be used for FGAC at the top of the page.
Continuing from DNakevski# answer above, for FGAC we need to ensure the following three settings in the CFN template are set to true since they serve as pre-requisites:
EncryptionAtRestOptions
NodeToNodeEncryptionOptions and
HTTPS.
Further, the important parameter for FGAC in the CFN template is AdvancedSecurityOptions and needs to be set to Enabled: true
AmazonES/Opendistro-for-ES provides two ways for security with FGAC. One is through using a IAM user as a master-user and other is through having basic auth.
If you need to take the IAM way then set the InternalUserDatabaseEnabled to false and only have the parameter *MasterUserARN: "IAM User ARN" under the MasterUserOptions field.
If you need to take the basic auth (username and password) approach set the InternalUserDatabaseEnabled to true and have the MasterUserName: "any-name" and the MasterUserPassword: "xxx"* Please have at least one lower case, one upper case, one digit and one special character for the password else the CFN template will rollback. However, the failure message is easily seen on the CFN console under events.
I have a simple working CFN yaml here doing the same just in case.

CAS Multifactor Authentication Provider Selection

I am working with cas-overlay-template project in version 6.1.4. I have implemented two mfa providers on my CAS, Google Authenticator and CAS Simple. Both are working, I have tested them separately and I have got the results I've expected.
Until now, I have been activating the mfa modifying the cas.properties file adding this properties: cas.authn.mfa.globalProviderId=mfa-gauth when I wanted to use Google, or cas.authn.mfa.globalProviderId=mfa-simple when I used the CAS itself.
Well, in CAS documentation is mentioned that is possible to enable a provider selection menu, if resolved more than one just by adding this propertie: cas.authn.mfa.provider-selection-enabled=true. So, my configuration is the following:
cas.authn.mfa.provider-selection-enabled=true
cas.authn.mfa.globalProviderId=mfa-gauth
cas.authn.mfa.globalProviderId=mfa-simple
But when I try to login with any user (I'm using the default one casuser:Mellon), CAS don't show me a menu in which I can select the following mfa provider, It directly goes to mfa-simple provider.
What am I doing wrong?
Well, in CAS documentation is mentioned that is possible to enable a provider selection menu, if resolved more than one just by adding this properties:
So far so good.
So, my configuration is the following:
That's the problem. You are not resolving/triggering more than just one provider. You start with mfa-gauth and then override it with mfa-simple. In CAS 6.1.x, the globalProviderId only accepts a single identifier. It's not a list or a container of any kind to accept more than one value. This has been addressed in the next coming release.
At the moment, to resolve more than one provider you will need to assign the MFA providers to a registered service definition. Like so:
{
"#class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|imaps)://.*",
"name": "Example",
"id": 1,
"description": "This service definition defines a service.",
"evaluationOrder": 1,
"multifactorPolicy" : {
"#class" : "org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy",
"multifactorAuthenticationProviders" : [ "java.util.LinkedHashSet", [ "mfa-duo", "mfa-gauth" ] ]
}
}
This means, provider selection can be enabled on a per-application basis. Alternatively, you can write a small groovy script to return more than one provider back to CAS, allowing the selection menu to display the menu items.
Read this post for full details.

Zabbix API hidden hostgroup/hosts

I'm trying to get all hostgroups/hosts through the zabbix API.
I have used the following json requests:
{
"jsonrpc": "2.0",
"method": "hostgroup.get",
"params": {
"output": "extend"
},
"auth": "6f38cddc44cfbb6c1bd186f9a220b5a0",
"id": 1
}
The one for hosts differs only in "host.get" instead of "hostgroup.get".
But unfortunately some information is hidden. The frontend shows everything correct. But the API output is missing some hostgroupts/hosts.
It's bizarre because one of my self created hostgroups is displayed, the other one is not. Same happens with the hosts that are currently inside this hostgroup. As you can see I don't use any filter option.
Does somebody have a clue?
Thanks in advance!
If your user is not a Zabbix "superadmin", it must have permissions on those host groups. Otherwise you would not be able to retrieve groups or their members.