I am wondering how I can give my client the necessary permissions to access the Datastream 2 API v2. I tried editing the client’s configuration but could not find the correct API (I did not see the “Datastream” entry in the API list).
We have already set the API permissions for property manager and content control utility.
I keep receiving the following error: “The client does not have the grant needed for the request - forbidden” while invoking Datastream API.
2 Likes
Thanks for the question, @EmanueleC.
Following this guide from our TechDocs, https://techdocs.akamai.com/datastream2/reference/api-get-started, you will need to set-up Read-Write access for the DataStream API. If your API client currently only had Property Manager API and CCU/Purge API access, you will need to add DataStream API access to that. You can do so in the Identity & Access Management portal in Akamai Control Center.
If you are unable to see DataStream API in the list of possible APIs, there might be an issue with having DataStream 2 available on your Akamai contract, if so, you could look in Akamai Marketplace or contact your Akamai account team to gain access to DataStream 2.
I hope that helps!
/Mike
1 Like
Thank you for your reply. We solved it; we had some problems with the permissions on the contract associated with the datastream purchased on marketplace.
Out of curiosity, how long does a change of permissions take before taking effect?
Thank you.
1 Like
Excellent! That is usually tricky when you are a multi-contract customer. API permissions should take effect quickly, 2-3 min. I have seen a rare occurence where the API keys needed to be rotated but I haven’t seen that in a while. /Mike
1 Like
Hi, I’m using this thread to ask another question: is it possible to create a datastream by linking to it a property that has not yet been activated?
Your documentation for the API “datastream-config-api/v2/log/streams” states::
"properties (required): Identifies the properties that belong to the same product and you want to monitor in the stream. Note that a stream can only log data for active properties. You can activate a property in the Property Manager.
Here it appears that the property only needs to be active for logging but not necessarily for creating a datastream.
Thank you!
1 Like
@EmanueleC Thank you for joining our community. I’ve added a few tags to this category and applied them to your post for easier discoverability.
@melissen Would you be able to assist with the above questions?
That is a good question @EmanueleC.
Sadly, this is still a known issue between Akamai Property Manager and DataStream 2. This ‘circular dependency’ has been on the roadmap to be solved as this is also causing issues with Infrastructure as Code use-cases such as Terraform.
You will need to have a valid property deployed to at least Akamai Staging before you are able to create the DataStream configuration for it. And of course, you can only add the DataStream ID to your property in the behavior once the DataStream configuration has been created.
Our product team is looking into ways to make this easier but no date/solution has been committed yet.
/Mike
1 Like
Thank you for your response @melissen.
I looked further into this topic and here is what I did:
- I create and activate a property (so far so good)
- I create and activate a datastream (v2) and pass it the id of the previously configured property (again, no problems)
- I update the property, adding the “datastream (v2)” behavior to the “monitor” rule (with the respective stream id): after making this update, if I try to activate the property, sometimes I get 500 HTTP status code (Server error, without any additional details) apparently for no reason. Do you have a clue for me as to what is going wrong here? Thank you.
Interesting, troubleshooting 5xx errors is a little bit tricky. You can send me the details over email if you like (Account, Config), my username is also my email address. Not sure if there is anything else in the configuration or property that could throw a 500 error that might not be related to DataStream 2.