Hard Code
From Friend2Friend Wiki
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??
