Jump to content

Recommended Posts

Related to the forum post below, we are have to call the 'getCatalog' API call in order to obtain the catalog specific BPM Name, however this call fails reporting no access allowed, unless I give the integration user admin/super user roles.

Can you confirm the minimum permissions needed for the 'getCatalog' API call to be able to return the details successfully?

Cheers

Martyn

 

Link to comment
Share on other sites

Guest Ehsan

@Martyn Houghton,

Could you please share the error that is presented to you in response? I can invoke this API https://api.hornbill.com/apps/com.hornbill.servicemanager/Catalogs?op=getCatalogs with a user who is assigned the "Services Manager" role, withstanding my previous question about the reason behind not using the role that is intended for integrations.

Ehsan

Link to comment
Share on other sites

@Ehsan

We have applied the integration role to the user and removed the other super user roles. The permission issue has now returned, with the following message content being returned.

 

<?xml version="1.0" encoding="utf-8" ?>
<methodCallResult status="ok">
    <params>
        <catalogData>[]</catalogData>
        <catalogCount>0.000000</catalogCount>
        <error>notAllowedToAccess</error>
    </params>
    <flowCodeDebugState>
        <step>54c3f247-2137-45b5-b2c2-98a9d351e5b3</step>
        <executionId>3905b840-1ef0-4bb5-9d9f-9833aa2d820e</executionId>
    </flowCodeDebugState>
</methodCallResult>

User authenticated by API Key  has the following permissions

image.png.52fcfc1f12e9edf8d217f1380f2b0e87.png

Cheers

Martyn

Link to comment
Share on other sites

 

@Ehsan

The integration user is a member of the supporting team for all the services. It is able to log requests without issues as member of the supporting team under the names of external contacts who are subscribers to the service.

I will add it as a subscriber to the services as well to see it that works.

Cheers

Martyn

 

Link to comment
Share on other sites

Guest Ehsan

@Martyn Houghton,

Having looked into it, without diagnosing the set up on your instance,  I can't point out any obvious missing steps. The user should have access to the service, provided that they are supporting the service. When invoking the API, have you set the "serviceId" input parameter? Have you tried it again since yesterday, to confirm that there were no caching issue?

Alternatively you could use the Integration role to invoke the API below to get the information you need. Please note that the value for h_request_catalog_id should be the Catalog Id and the value for h_service_id is the Service Id.

<methodCall service="data" method="entityBrowseRecords2">
    <params>
        <application>com.hornbill.servicemanager</application>
        <entity>Catalogs</entity>
        <matchScope>all</matchScope>
        <searchFilter>
            <column>h_request_catalog_id</column>
            <value>769</value>
        </searchFilter>
        <searchFilter>
            <column>h_service_id</column>
            <value>1</value>
        </searchFilter>
        <searchFilter>
            <column>h_language</column>
            <value>default</value>
        </searchFilter>
    </params>
</methodCall>

Ehsan

Link to comment
Share on other sites

Guest Ehsan

Hi @Martyn Houghton,

Thank you for generating an API Key to help me investigate the issue you are experiencing with the integration. The user that you provided an API Key for is not assigned to any teams, hence the user is not supporting the service in question. Perhaps you could create an Integration team, assign the user to this team and add to the supporting teams of the service?

Ehsan

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...