You can grant access to the developed indicators or strategy(modules) for any ATAS user, set the access expiration date and turn off access at any moment of time.
To do it, it is necessary to:
To activate the option of loading module, you need:
Preparation of a module Every module, which would be distributed among other users, should have a unique identifier. The FeatureId attribute (namespace OFT.Attributes, the OFT.Attributes.dll library) is designed for it. This attribute should be assigned to each module, which is included into the distributed package, specifying a unique string identifier. The older ATAS.Indicators.Attributies.FeatureId attribute is obsolete; use OFT.Attributes.FeatureIdAttribute instead.
Access is checked only for the classes marked with this attribute: an indicator or strategy without [FeatureId] is available to anyone who has the file.
Example:
One and the same identifier could be assigned to several modules. In such a case, you will be able to control the access of the whole group of modules from the Personal Area.
After the module is ready, it is necessary to compile it. We also recommend obfuscating the module for its protection.
Loading the module into the service:
For each module, you can specify users, who have access to it, and the date of access expiration.
Users do not need to download the file themselves: when a user signs in to the platform, it downloads the modules available to the user's account, installs them into the indicators or strategies folder and replaces the installed file when you upload a new version. A module whose access has expired is not downloaded.
If a user has a downloaded module but has no access or access expired, the user will not see this module in the platform and will not be able to use it.
Currently, we do not add any additional copy protection to files provided via the ATAS API on our site. This means the developer is currently responsible for protecting the source code. In this context, the obfuscation is indeed the recommended and common approach.When implemented correctly and professionally, it provides sufficient protection against the code being read or redistributed in practice.