Hard Code

From Friend2Friend Wiki

Jump to: navigation, search

Hard code is the specific implementation used to present the virtual platforms, i.e. to run the soft-systems. Currently there is only one implementation, the PHP5.2 version.

Hard Code Modifications

This is for ones we definitely do want.

Name Size Description Status
Fix installation permissions small Installation should set the permissions on the folders it will want to write (/soft-systems, /core/compiled, /modules/*/compiled, //logs). Maybe best done by adding @permission to the locations.xml file? Uncoded
Call stack for messages in filters medium Currently, only services/hooks get a call stack, which works through @did (debug ID). Creating a callstack for messages would require adding a systemwide @id for messages. It might be efficient to make this the same as @did, or it might be confusing. Uncoded
domcache Small Improve the cache so it keeps track of saves() as well as writes(), then expand to include all the dynamic files Uncoded
system-file-protection Small/Medium Currently, privilege escalation is simple, using fs-write to overwrite system-parameters.xml. This could be prevented by hardcoding to protect writes to this file. Uncoded
<soft-node-import> Small This sends outs "import" packets, and the export filter returns "import-ok" packets. Import filter needs fixing. Unfinished
<scriptreq> Small Should run the matching script, c.f. <servicereq> Uncoded
Make filters a system-wide resource Medium Currently, they just use @src, so they are not designed to be shared between soft-nodes. This is inconsistent with other resources, and soft-coders probably don't want this limitation. Uncoded
<function-delimiter> Medium Define propagation of services in a soft-system, to allow more predictable installation of multiple copies of the same module Suggestion
@pre-* processing directives Small There is code lying around, but the only one of these currently implemented is @pre-skip. Uncoded
@this-ignore="..." Small This processing directive instructs the system not to throw the specified exceptions Uncoded
Automatic debug testing Small/Medium Expand the spec a bit, add e.g. @fixed-output="out.xml" or @variable-output="outvarscript.xml"= another script which should create identical output and have a server script to automatically test all the module's debug packets. Uncoded
join.php Medium Should allow people to use their own X509. This could be a bit of a git, since most X509 certificates are technically very sloppy. Maybe seclibs.php has some useful x509 code. Uncoded

For larger ideas about the F2F processing model, see the model suggestions. For less definite ideas awaiting feedback, see the code suggestions.

System Parameters

Name Size Description
log-filter-threads Small To turn off logging of filter-threads
exception-throw-limit Small Set the maximum code which can be thrown by the exception-throw service

Core Services needing attention

Service Description Notes Status
bag-add Add to a set of items If @autonumber="*", it shouldn't bother with @id Simple Feature to Add
crypt-decrypt W3C XML decryption Uncoded
crypt-encrypt W3C XML encryption Uncoded
crypt-sign W3C XML signature XSL is non-namespace aware, so we need a namespace-insensitive canonicalization algorithm, which treats namespaces in the same way as XSL. Untested
crypt-verify W3C XML signature verification Needs special canonicalization as above Uncoded
node-filter-add Add a filter to a soft-node Uncoded
node-filter-delete Delete a filter from a soft-node Uncoded
node-filter-edit Edit a filter entry (not the XSL, but when it applies) at a soft-node Uncoded
send Communication to other servers Passes the data to a separate process, which uses non-blocking I/O to simultaneously sending/receiving data to/from other servers. not hard with blocking I/O and HTTP. An important one to get going, so people can see what this is about!
language2uri Wordnet-based mapping from natural language For semantic web creation, e.g. making RDF Suggested
uri2language Wordnet-based mapping to natural language For semantic web presentation, e.g. showing RDF Suggested
process-* Process handling Older version of processes was working a few months ago. Untested
process-signal Process handling Older version of processes was working a few months ago. Untested
system-daemon-add Add a daemon to the server (comm) Can't add a new process. Currently the only acceptable daemon is 'comm'. Not working
server-daemon-add Add a daemon to the server Needs thought. Currently can't start a new process. Not working
system-daemon-delete Delete a daemon (=stop crunching) Should be locked down to stop normal users from shutting other people's daemons down. Needs work

Do we want to allow general @xml:space, @xml:lang attributes on the services??

Personal tools