Bug description
When building a plugin with [Plugin(AccessRights = AccessRights.FullAccess)], the generated .algo.metadata JSON does not include the AccessRights field. The cTrader Store then rejects the upload with "The algorithm requires full access rights (AccessRights.FullAccess)."
The AccessRights property is correctly serialized for [Robot] but not for [Plugin].
Environment
- SDK: cTrader.Automate 1.0.17 (latest on NuGet)
- .NET: net6.0
- Product type: Plugin (Desktop)
Actual behavior
Metadata JSON produced:
{
"Flags": "Plugin",
"Capabilities": [{ "CapabilityType": "FullTrust" }],
...
}
No "AccessRights" field.
Expected behavior
{
"Flags": "Plugin",
"AccessRights": "FullAccess",
"Capabilities": [{ "CapabilityType": "FullTrust" }],
...
}
Workaround
Patch the .algo binary after _BundleAlgo: decompress the deflate stream containing the metadata JSON, inject "AccessRights": "FullAccess", recompress and rebuild the file.
Why this matters
Any plugin using WebView2, P/Invoke, or Process.Start requires FullAccess. Without this field in the metadata, the Store systematically rejects the upload regardless of the C# attribute being present.
Bug description
When building a plugin with
[Plugin(AccessRights = AccessRights.FullAccess)], the generated.algo.metadataJSON does not include theAccessRightsfield. The cTrader Store then rejects the upload with "The algorithm requires full access rights (AccessRights.FullAccess)."The
AccessRightsproperty is correctly serialized for[Robot]but not for[Plugin].Environment
Actual behavior
Metadata JSON produced:
{ "Flags": "Plugin", "Capabilities": [{ "CapabilityType": "FullTrust" }], ... }No
"AccessRights"field.Expected behavior
{ "Flags": "Plugin", "AccessRights": "FullAccess", "Capabilities": [{ "CapabilityType": "FullTrust" }], ... }Workaround
Patch the
.algobinary after_BundleAlgo: decompress the deflate stream containing the metadata JSON, inject"AccessRights": "FullAccess", recompress and rebuild the file.Why this matters
Any plugin using WebView2, P/Invoke, or Process.Start requires
FullAccess. Without this field in the metadata, the Store systematically rejects the upload regardless of the C# attribute being present.