Hubzilla Project: Project Roadmap
Table of Contents
Project Roadmap (This roadmap is out of date!)
Structure and Database
Since photos and files are now merged, remove redundant information from the photo DB table. Captions, mentions, and permissions can all be stored with either the linked "item" or the linked "attach". Be aware that connection photos and things photos are still stored in the photo table and have no linked items or attach structures; but they also don't require permissions, captions, mentions, etc.
Conversion of core application to a composer format living under the namespace "Zotlabs"
Conversion of Modules to a more general purpose Controllers layout with DB/memory based controller routing as opposed to filesystem routing.
Conversion of core Zot Protocol to a class library
Resolve the "every photo has an item" confusion, perhaps every file should also - but only if we can explain it and separate them conceptually.
rewrite the "probe" (network discovery) logic to streamline it
key revocation (this is a complex topic because your key is integral to your identity). The method under consideration requires your existing key to remain as an identifier - even if it is compromised. A second key is then generated and used for communications. The original key is no longer tied to trust or authentication but is only used to calculate and maintain a consistent identity string
Abstraction of nomadic identity so that sending/receiving to/from singleton networks to/from any clone works flawlessly - [b]provided[/b] the clone physically connected to that singleton identity is up. es and special cases a lot of core functionality. (HZ - in progress)
Convert E2EE to dynamic loading (on demand) using jQuery.getScript() [or other methods] to only load encryption libs when you require them. This should also support multiple encryption libraries (e.g. SJCL, others) triggered from the choice of algorithm and remain pluggable.
DNS abstraction: Allow a channel to live in an arbitrary "DNS" namespace, for instance "firstname.lastname@example.org". Use our directories and zot to find the actual DNS location via redirection. This could potentially allow hubs to be hidden behind tor or alt-roots and accessible only via the matrix.
In order to facilitate sharing of private resources with non-members or members of federation nodes with limited identification discovery, Hubzilla should provide members with a mechanism to create and manage temporary ("throwaway") logins, aka "Zot Access Tokens". These tokens/credentials may be used to authenticate to a hubzilla site for the sole purpose of accessing privileged or access controlled resources (files, photos, posts, webpages, chatrooms, etc.).
- Identify what API additions and improvements are needed
Create a tool for file cloning. Unlike regular clone operations, memory limitations require us to provide just the meta-data in the clone sync operation and fetch the file(s) (possibly in chunks) from the hub holding the original. Probably will end up using the zot 'request' message to do the fetch. Will likely need a DB table to manage state, how much has been downloaded etc., and link to a queue to fetch remaining bits.
Provide a mechanism to move files/photos between directories. Harder than it sounds because several different table elements in several different structures need to be changed to maintain consistency.
Provide a way to sync web resources. This could be built on DAV except for preserving resource naming (guids) instead of filenames.
Events and CalDAV
- Complete creation and integration of CalDAV client. (In progress)
- Recurring events
Hubzilla chat can be improved in many ways, but additional features should support use cases that are aligned with the goals of the Hubzilla project.
- Implement browser notifications for various events
- Members leave
- New messages
- Create per-member config options for visual and audio notifications
- Track unread messages and highlight them somehow when returning to the chat window
- Focus on visual website design tools, widgets, and sharing mechanisms
- App organisation.
- Auto Updater
- If practical, separate "conversation" sub-themes from overall themes so one can choose different conversation and content layouts within a base theme.
- Make webpage building easy, with point-n-click selectors to build PDLs
- bring back WYSIWYG, which ideally requires a JS abstraction layer so we can use any editor and change it based on mimetype
- Convert the /help pages (doco) into a Hubzilla wiki, and provide a way for hub members to contribute content via git.
GNU-social federation plugin for UNO.
Pump.io federation plugin for UNO.
rework the "like" (dislike, attend, agree, etc.) activities to make a single activity type aligned with the 'react' activity now seen in some corporate projects. Ditto for poke.
Migration tools: Friendica importer
Migration tools: Diaspora importer (channel and connection import done, conversations and photos still in progress and waiting for support from Diaspora)