One of the early design choices with Signet was not to include a display or complex user interface on the device. This meant it must be operated by software on the host. This offers a number of significant advantages. For example, it makes it easy to keep the device affordable and compact. Perhaps more importantly, it allows the user to take advantage of the high resolution screen and efficient keyboard and mouse controls of the host, which open up a number of interesting applications beyond password management.
Early in Signet's development, I knew I wanted to take advantage of the power of the host computer so I designed Signet to operate on a general purpose database that could evolve and expand. I've reached a point in development recently where an end user can now create and manipulate their own data types and fields with relative ease. In this update I'm going to share some screen captures that illustrate how this can currently be done, give some examples of real world use cases, and indicate areas of likely future development.
Signet supports an arbitary number of data types. Some have a structure that is pre-defined by the application and other types can be added by the user. Just below the search bar is a pulldown menu where you can select which kind of data you want to view or search for.
There are many common UI features shared across data types but some data types may feature special actions on the toolbar below the main view such as to launch a browser with a URL associated with the account or to tell Signet to type one of the type's commonly needed fields.
Frequently there are pieces of information that you need to keep track of that relate to data you have already stored but there is no existing field to hold it. Signet allows you to add any number of fields to existing data and to specify what kind kind of data it is so that the application can choose a proper UI control for it. These fields are specific to an individual entry and appear below the main fields under a separator line. The screen captures below give a few examples such as storing a contact's personal website, storing the routing and account number associated with a debit card, and adding unstructured notes about an account
There is one built-in type in Signet that has no pre-defined fields. Adding data here can be a great alternative to using sticky notes or scattered text files. It's most useful for storing data about things you only have one of. Examples below include your SSN, vehicle identification number, and home Wi-Fi password.
A special data type exists that allows you to create new data types. You would probably want to use a new data type if you have more than one of some kind of information and want to keep it organized. You might want to keep track of the social security numbers of all of your family members or the SSH keys you use with various computers and services.
Once new types are created they will appear in the data types pulldown menu below the built-in types and instances can be created.
Each data type that Signet stores has associated Client and Firmware modules that enables UI and device behavior specific to that data type. For now there are only two modules, accounts and generic data types. This modularity will allow Signet to serve some exciting new purposes in the future. The most likely set of new modules will relate to data types that store cryptographic keys. We are also looking forward to the possibility of user submitted modules to handle functions and workflows we have yet to imagine.