|
Core
Requirements for the Core core module.
Phase-Requirements IntroductionThis page enumerates the requirements for the Core core module. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. DetailsThe implementation MUST cause the following paragraph to be true: This module is located in the Stratos.Core namespace with a fully qualified class name of Stratos.Core.Core. It is a singleton class, with the only instance available as a public static read-only property named instance on the class. Within module or extension code, it is also available as a protected static readonly field of the Module class, named Core. This module MUST NOT assume the presence of any others except the following:
It MUST define an API and database structure for registering modules and module APIs. The APIs of registered modules, along with the API in question, MUST be made available in a portable format to other modules. In particular, the format MUST be compatible with the Cli module. This module MUST generate, acquire from the server administrator, or otherwise produce: a database named "Stratos"; and a DBMS user likewise named with all privileges specific to the database, which SHALL be used by the project for all other necessary database operations. For example: CREATE USER 'Stratos'@'%' IDENTIFIED BY '?pass'; CREATE DATABASE `Stratos` CHARACTER SET = 'utf8' COLLATE = 'utf8_unicode_ci'; GRANT ALL ON `Stratos`.* TO 'Stratos'; Additionally, it MUST define the following database tables: CREATE TABLE `Stratos`.`modules` ( `id` int unsigned NOT NULL AUTO_INCREMENT PRIMARY, `name` varchar(16) COLLATE utf8_unicode_ci NOT NULL UNIQUE, `description` varchar(32) COLLATE utf8_unicode_ci NOT NULL, ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; |