NIY: Place content files for example.com into userdata/sites/example.com as in the example code.
Changed:
° Use Webfan Webhosting API instead
° Introduced runtime "@Scopes":
- @transport - Transport and Transaction Contexts (via API/WEB)
- @tmp - Avoid any persistances in runtime if possible.
- @session - Avoid any longtime persistances in runtime if possible, although persist states in a time-limited session (user-session or other client-session).
- @shared - The FRDL_WORKSPACE directory shareable by all sysusers/webhosts apps.
- @global - The /.frdl Workspace-Directory is placed/running in the machine users home directory.
- @www - The /.frdl Workspace-Directory is placed/running in the public web accessible DOCUMENT_ROOT folder.
- @cwd - The /.frdl Workspace-Directory is placed/running in the current working directory.
- ?string - Specify a custom directory (e.g. a Modules folder) The availability of some scopes may depend on the PHP open_basedir settings.
° | Enduser | Webmaster | Developer |
---|---|---|---|
Audience - Who can use Webfat ? |
A Enduser of an Webfat instance with WebfatHub, or someone using Webfat App/Browser. |
A Webmaster can run Webfat on his own host or webhosting, he can use and configurate his instance without handling any source code. This is the recommended Flavor* for the beginning so far. |
The Developer want to alter the source code and write his own module and implementations. |
Building Flavor | Webmaster [DEFAULT] | Developer | |
Webmaster and Developer can select one of two kinds of "Building Flavor" the instance should prefer. This must be done in the .env file or in .webfan.env or in .webfat.env . This option influences if you are Webmaster or Developer !!! |
The Enduser cannot set environment variables. | Get the best Code without to be a programmer using the No Code Paradigma This option influences how Webfat compiles the application! If this enviroment variable is not set, it will be set to this value! | Develop and compile the core and your custom modules on your own machine using Runtime Compilation This option influences how Webfat compiles the application! You have to set this manually! |
env Environment Variable "FRDL_BUILD_FLAVOR" |
FRDL_BUILD_FLAVOR = '1.3.6.1.4.1.37553.8.1.8.1.1089085' |
FRDL_BUILD_FLAVOR = '1.3.6.1.4.1.37553.8.1.8.1.575874' |
Webfat will provide some special specs. implementations.
spec: 1.3.6.1.4.1.37553.8.1.8.1.575874
/ISO/Identified-Organization/6/1/4/1/Frdlweb/weid/1/8/1/NoVersion
Instead of installing a packaged version, we compile a composition of components on a per instance base. The installation may not be portable to another machine.
spec: 1.3.6.1.4.1.37553.8.1.8.1.16606
ID: weid:1-8-1-CTA-1
Package: frdl/cta
Save data/files based on a content hash. Same data will only be saved once, saving disk space.
spec: 1.3.6.1.4.1.37553.8.1.8.1.16606.1.56234465
Package: frdl/cta
To reduce the possibility of collisions we store the hash along with the content-size.
spec: 1.3.6.1.4.1.37553.8.1.8.1.16606.1.27200801029
ID: weid:1-8-1-CTA-1-CHUNKED-4
Package: frdl/cta
Files/content is saved into chunks of the same size/length.
spec: 1.3.6.1.4.1.37553.8.1.8.1.984.17868.761724857
ID: weid:1-8-1-RC-DSC-CLIENT-0
Package frdl/remote-psr4
Load code from an API "on the fly" when needed.
spec: 1.3.6.1.4.1.37553.8.1.8.1.1089085
Compliant to User Data Manifesto 2.0 and considering security issues, we store ONLY DATA on the userlevel (e.g. html, xml, json, md, ...) NOT bound to any implementation code. Compliant to Config-Only-API (?) and compliant to User Data Manifesto 2.0 and considering security issues, we allow/request/expect any modification on the instance level (e.g. theme, sitesettings, plugins and modules) ONLY BY API/INTERFACE. The instance level is meant to be any "installation" or instance of the NCCD Software (CMS, API, ...), this is where we do NOT DO HAVE ANY CODE ISSUES: This is deligated to the scope of the SaaS-Codebase-Provider and could be done via local shares or remote shares of source code.
spec: 1.3.6.1.4.1.37553.8.1.8.1.83642115915
If however possible, Webfat follows the Twelve Factor Application Development Paradigma.
- I. Codebase One codebase tracked in revision control, many deploys
- II. Dependencies Explicitly declare and isolate dependencies
- III. Config Store config in the environment
- IV. Backing services Treat backing services as attached resources
- V. Build, release, run Strictly separate build and run stages
- VI. Processes Execute the app as one or more stateless processes
- VII. Port binding Export services via port binding
- VIII. Concurrency Scale out via the process model
- IX. Disposability Maximize robustness with fast startup and graceful shutdown
- X. Dev/prod parity Keep development, staging, and production as similar as possible
- XI. Logs Treat logs as event streams
- XII. Admin processes Run admin/management tasks as one-off processes