API Global Keys vs Application Key

I am using PrusaSlicer to send prints directly to OctoPrint.
The API section now says you shouldn't use global key, but rather application keys.
The Application Keys section says "no registered keys"
The documentation talks about writing API calling code to request a key and prompt for user registration etc.....

However I don't really want to have to set up a service and write code just to register that PrusaSlicer can talk to OP. So I use global API key for now.

I searched for documentation, but gave up after 30 minutes, can someone point me somewhere?

Thanks!

There's currently a bug in the stable release, that means the 'create new key' button is not visible when there are no keys. Fixed for the next release, but for now, you can go to the user settings (using the drop-down with user icon, top right navbar) then select application keys there.

... or you can use the global API key until the next release.

The "problem" with the API key is that there is no user associated with it. An application that knows the API key is granted "super" rights, ie everything is possible. With user keys (as @Charlie_Powell suggests) or Application Keys, the application that uses that key only gets the rights of the user associated with that key, so you can limit what the application can do. The Application Keys give you additional granularity of per-application. If for example you decide you no longer want to have a certain application access OctoPrint, you can revoke that application key without having to reconfigure all other applications.

Application Keys also have the benefit of a nicer way to request them, if the application supports it. The OctoPrint Connection plugin does, and it looks something like this:
Application key workflow
So no copy/pasting, just requesting and allowing.

1 Like

It this was supposed to be an animated gif, it didn't work for some reason :thinking:

Strange, it is showing animated for me. I borrowed it from my post here:


Perhaps it was the forum making a copy of the "external" image or something like that.

It was just a screenshot, not a link to the imgur album. I've fixed that.

2 Likes

Thanks. that's really helpful. I guess the challenge is that whilst i get that having a user assigned with an API key offers more control and security, I don't know what to set for PrusaSlicer. I know this sounds selfish, but given the number of Prusa / OP users, would be great to have a plugin that does "set up API access on new account for PrusaSlicer here..."

For now I will stick with global, as nothing is accessible externally.

thanks again!

I thought there was a feature request for PrusaSlicer to implement that API request method or I saw it as part of a discussion on discord of someone that was going to attempt to make it and submit a pull request.

1 Like

There was someone supposed to be implementing the request/authorise workflow similar to what is integrated with Cura-OctoPrint connection by @fieldOfView.

Not sure if it didn't get merged into the release, or what. Something that needs to be implemented in Prusa Slicers end, not possible in OctoPrint as it stands. And with the next release the UI will be fixed :slightly_smiling_face: