Coma is built on top of a series of base classes (objects) that store all the runtime variables. The API defines these objects and how they are used. Each object must have the following characteristics:
Chances are that some of these objects are being referenced by more than a single thread. Because of this, data access must be encompassed by a mutual exclusion mechanism.
Each object must be representable as a Javascript object. Functions should process data types that are compatible with Javascript data types.
Objects that expose potential security issues, such as the file system or networking, must extend a base security class. Objects are scoped to a context: server, site, connection, and request. By default, scopes cascade down security rights.
Any code compiled into the main executable is considered to be trusted and has full access to any object in any scope.
The server must be explicitly told each native C++ modules and Javascript modules to dynamically load and what scope they belong to. Server scoped modules must be explicitly told to allow access from lesser scopes using access control lists.
There are 4 scopes:
Recent comments
23 hours 17 min ago
3 weeks 3 days ago
6 weeks 1 day ago
7 weeks 5 days ago
7 weeks 6 days ago
8 weeks 6 days ago
10 weeks 5 days ago
10 weeks 5 days ago
11 weeks 1 day ago
11 weeks 5 days ago