There does not seem to be a way to set an attribute type as Boolean via the API; if a workspace attribute is created and set to true or false via the API, the type ends up being String.
That sounds like a bug. Thank you for reporting this, I will put in a ticket to fix it!
I just tried doing this for myself in a sandbox workspace and it worked out. Can you explain the steps you took and where you confirmed the type of the workspace attribute you tried adding? Thanks!
It seems the issue is the API swagger documentation:
op (string): Operation to perform on the attribute ,
attributeName (string): The name of the attribute ,
addUpdateAttribute (string, optional): The value of the attribute (if adding/updating)
According to this addUpdateAttribute only takes string values, but testing through this, it turns out that addUpdateAttribute can take a boolean, a number, or a string. Because we trusted this, FISS passes this as a string, but it looks like we should not be doing that.
If the API documentation could be updated with this information (as well as with all the possible values for the op field), that would go a long way towards eliminating reports of API bugs that are actually API documentation bugs.
I've added a note to the ticket in light of this new information. Thank you for helping us find the root cause here! I hope to get it fixed promptly.