Skip to content

cTrader.Automate v1.0.17: ExtractMetadataTask does not serialize AccessRights for Plugin attribute #57

Description

@VolatilCapital

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions