Summary
Troubleshooting JWT Authenticator usage in Airbyte Builder for AppStoreConnect API
Question
Hi, is anybody using JWT authenticator in Airbyte builder? I tried passing JwtAuthenticator in the additional fields, but the AppStoreConnect customerReviews API failed with a 401 error.
This topic has been created from a Slack thread to give it more visibility.
It will be on Read-Only mode here. Click here if you want
to access the original thread.
Join the conversation on Slack
["jwt-authenticator", "airbyte-builder", "appstoreconnect-api", "401-error"]
Were you able to resolve this?
I am encountering something similar on my end related to how AirByte parses the secret key if it’s provided from configuration {{ config['secret_key'] }}
vs it being provided as static value in the YAML manifest.
For hard-coded values, Airbyte succeeds in connecting to Apple Store if the value is multi-line:
....
-----END PRIVATE KEY-----```
When switching to getting the value from the config, then AirByte blows up because it is unable to reconstruct the multi-line value, instead, it builds it as a single line value with spaces instead of line feeds (\n). Something similar to:
```-----BEGIN PRIVATE KEY----- keyvalue kevalue keyvalue -----END PRIVATE KEY-----```
Any line feeds `\n` are removed and ignored which causes the whole key to be invalid.
<@U0712FBB14P> Still not resolved. Did you create the connection using Airbyte Cloud Builder?
I’m using the OSS version and used the Connector Builder to validate and test my manifest yml.
After changing the parameter spec to be multiline I was able to pull data from the App Store. If you could share your configuration with me I might be able to spot what’s different between the two and hopefully solve your issue.
Edit: I also removed my previous message as not to confuse other people who might be looking into this thread. My own problem was different than the original poster.
EDIT: It seems that we experiencing two different issues.
Mine is a multi-line issue, which I think I can fix by adding multiline: true
to the spec.
Your issue could be due to you not passing the scope:
/v1/apps/{APP ID}/customerReviews