Documentation

{{docApp.title}}

{{docApp.description}}

INDEX

Documentation Library

Search for information on Hornbill Documentation.

{{docApp.searchError}}

{{docApp.searchResultFilteredItems.length}} results for "{{docApp.currentResultsSearchText}}" in {{docApp.searchFilterBySpecificBookTitle}}

Have questions about this site?


What is this site?

  • This website is Hornbill's new product documentation website and is currently under development.
  • It is intended that all existing and future public-facing documentation we produce will be available to search, browse and share.
  • Hornbill's current documentation is available at Hornbill Wiki but over time this content will be migrated to this documentation site.
  • Please feel free to have a look around at any time.

Why has Hornbill created this site?

  • Hornbill's products have moved on considerably since we introduced it almost 10 years ago. At the time, the MediaWiki tool was sufficient, but we have outgrown it.
  • Our customers are more enterprise focused and more self-sufficient than ever before, so for 2023 and beyond we have established a new documentation platform and team to drive our documentation initiative forwards.
  • We are aiming to deprecate the use of Hornbill Wiki for most Hornbill related documentation.
  • We want to enable our growing partner network with product resources and information, documentation beyond our Wiki approach is required.
  • We could definitely do with some help, and may even pay for some! If you have domain knowledge and would like to help, please check out our Hornbill Docs Contributor Guide and contact the Hornbill docs team at docs@hornbill.com.

What will this site be good for?

  • Community contribution will be facilitated, encouraged, and most welcome.
  • High quality documentation, will be kept up to date as rapidly as our products evolve.
  • Real-time content search and discovery.
  • Articles organized into books, books into libraries, creating a more natural and logical structure to our documentation.
  • Legacy API documentation and various other documentation sources will all be consolidated into a single unified documentation system.
  • Documentation available in browser as well as printable/viewable as PDF on demand.
  • Personalized documentation experience, allowing dark/light mode, article subscriptions, social media sharing and other useful features.
  • Almost all publicly available documentation on docs.hornbill.com will be open-source and available to fork on GitHub, allowing customers to derive their own custom documentation around Hornbill products should they wish to.

What is the timeline for this site?

  • We have taken the decision to publish and make available early, there is very little content at this time.
  • As and when we have completed/usable documentation, it will be published here.
  • We have a host of additional features we wish to add over time, so please watch this space.
  • We expect most of our existing documentation should be reviewed/migrated to docs.hornbill.com over the coming months.
  • The documentation project will be ongoing, will continue to expand, evolve and improve day-by-day.

{{docApp.libraryHomeViewProduct.title || docApp.libraryHomeViewProduct.id}}

{{docApp.libraryHomeViewProduct.description}}

  1. {{book.title}}

{{group.title || group.id}}

{{group.description}}

  1. {{book.title}}

{{group.title}}

Data Storage

Hornbill measures the space used by your personal data. It does not measure disk space used by our software or any infrastructure components we deploy in order to deliver the Hornbill service. The measurement is broken down into two separate domains known as Disk Storage and Database Storage.

Disk Storage

Files are stored using Content Addressable File Store (CAFS) technology. Each customer has their own CAFS store. The following elements of an instance contribute toward disk storage usage:

  • File Attachments (e-mails, posts, entity records, requests, tasks, etc…)
  • Content Indexes
  • Embedded Images
  • Documents (uploaded into Document Manager)
  • Application data
  • Any other large binary object

Database Storage

The underlying database a MySQL or MySQL compatible database system. Each customer instance has its own dedicated and isolated database. The following elements of your instance contribute towards database storage usage.

  • Posts and comments in activities
  • Tasks
  • Customers, Contacts, Users, Requests, Tasks and many other database records
  • Business Processes
  • Runtime and Security Audit logs
  • Reports
  • Any dynamic content that’s added to your database through the APIs, forms, and integrations.

Storage Quota and Utilization

Every Hornbill instance comes with 30Gb of storage and additional storage can be purchased when needed. We audit storage utilization daily and keep storage utilization history on the following basis.

  • Daily Database storage used for the last 90 days rolling
  • Daily Disk storage used for the last 90 days rolling

Tip

Your storage information can be seen in the Hornbill Solution Center

Storage Size Definition

There is sometimes confusion about abbreviated size values used in computing. For example, most uses of the team Gb mean Gigabyte, but there are two values this can mean, one is decimal, based on “1 byte x 1000 x 1000 x 1000” and the other is base 2, which is calculated as "1 byte x 1024 x 1024 x 1024). The modern interpretations of these size abbreviations are 1Gb = 1000000000 bytes and 1GiB = 1,262,485,504 bytes, and in general, a Gb is what is normally used. The problem with base 2 calculations is they are non-linear and do not work properly as the computing technology has reached the tera and peta byte scale, so the decimal scheme has been adopted generally, and this is true for the Hornbill platform. The following table sets out what we mean when stating storage sizes in Mb, Gb, Tb, etc.

Storage Size Abbreviations

Abbreviation Size In Bytes
KB 1000 bytes
MB 1,000,000 bytes
GB 1,000,000,000 bytes
TB 1,000,000,000,000 bytes

Data Encryption

All data is physically stored on SSD or Hard Disks and is hardware encrypted at rest at all times. Furthermore, data is stored in a RAID configured disk set, meaning customer data sets are spread across multiple physical disks, making it doubly impossible to extract any meaningful data without having all physical disks in a set to extract from. We use the industry-strength AES256 encryption scheme throughout and have a comprehensive key management system ensuring every physical and virtual server has its own set of string, unique keys for encryption.

Data Segregation

Hornbill has been designed with special attention paid to the security of data, specifically, we designed the system to achieve total isolation between individual customers data sets, while still getting the benefit of multi-tenancy in deployment and upgrades. Hornbill is designed to deliver the best of both worlds to our customers by adopting a hybrid data isolation model. To best explain Hornbill’s data isolation model we first need to describe the more traditional models.

Multi-Instance Model

This model provides a high level of data isolation because a fully independent instance of the software, database, and other components is running in full isolation for each and every customer. Typically this is delivered by providing a dedicated instance of an operating system (Linux or Windows etc) upon which a copy of the service provider’s software is running as well as the data set needed to support the customer’s specific instance. An example of this kind of SaaS architecture might be ServiceNow and Myservicedesk.com (Supportworks in the cloud).

Advantages

  • Data Isolation is achieved at the operating system level
  • Compute resources can be allocated/dedicated to individual customers
  • Customers can run specific versions of the vendor’s software in their specific instance

Disadvantages

  • Web-scale expandability is difficult to achieve, compute resources are finite as they are tied to virtual machine/operating system compute resources
  • Customers may find themselves unable to upgrade, the flexibility of running/locking down on individual versions of the software creates this problem as the software designers are not forced into considering the upgradability of every customer’s individual changes/customizations, this is especially true when customizations require code to be developed as part of the customization

Multi-Tenant

This model provides data isolation at the application layer which means that every customer’s data is stored in the same database and the application code ensures that data for each customer is only served to that customer. Properly implemented it is generally safe and reliable and has many large-scale proven applications deployed today. There are some big advantages but these are mostly weighted to the benefit of a service provider who in turn delivers benefits back to the customer through economies of scale and therefore price (in theory at least). Salesforce.com is a good example of a solution that adopts this model.

Advantages

Web-scale expandability is easier to achieve as the same computer resources are shared with all customers. All customers are on the same version of the software, which means all customers get all upgrades all of the time (think Facebook or Gmail) Any customizations done by customers for their own use have to be completely isolated (and therefore protected) during updates - this imposes the right behaviors on the software designers and development teams

Disadvantages

Customers have no control over the versions of the software they use, they have to be prepared to consume the software as a service. The risk of data leaking is moved up the stack to the application layer, which means that the risk of unexpected data exposure is higher than lower-level data isolation. Code developed in the application layer could expose data unintentionally.

Hornbill’s Model

There are pros and cons to both of the models described above and there are many more ways to deliver a SaaS solution than just those two extremes. Hornbill adopted a model that could best be described as a combination of those two approaches. It’s hard to put a name to what we have built but we would describe it as having true multi-tenant architecture but with enterprise-class data isolation. The best way to explain this would be to set out what our primary design goals were at the time of designing our architecture and what we ultimately implemented.

Number one on our agenda is we wanted a data isolation model comparable to that found in a multi-instance mode.

Data access requires a two-phase model for controlling access. Every data storage scheme implements at least two layers of access control, the first of which is instance awareness, meaning every request for access to data has to be identifiable against a specific instance for every request and to every storage container if the storage container does not belong to the instance then the request will fail.

Each customer’s data is fully isolated at the lowest possible level, and each customer has their own database, with isolation provided at the database security level (so this is independent of Hornbill’s own code and implemented at the infrastructure level away from the application code) using a unique system account per instance.

Each customer’s file storage has to be fully isolated at the filesystem level and held within its own container, access to which is again fully instance context-aware. In addition to this, within a container, file storage uses a content addressable system which guarantees that addressable content is unique to its actual content, so even if there was some accidental cross-contamination of customers’ data someone would need to guess the content ID (which is a cryptographically strong SHA-256 checksum of the actual content) which for all practical purposes is unachievable in any way that would create a usable exploit.

Web applications run on our front-end servers - all customers use the exact same versions of software running on the same front-end servers so compute resources can scale out infinitely horizontally based on load and demand.

Application servers also scale out horizontally without any theoretical limit. In practice, we organize our application services into PODs which provide workload distribution, durability, and resilience to hardware or network failures.

All customers run the same version of our software stack, and this forces good discipline and behavior in our software design, development, test, and deployment teams.

Content Addressable File Store

As a general rule, storing large objects such as images, files, videos, and other large binary objects it is very inefficient to use an RDBMS as a storage scheme. SQL servers are great for structured data but are far from ideal for storing things like files. Hornbill stores large objects using our own CAFS technology, CAFS stands for “Contact Addressable File Store” which unlike a conventional filesystem has some unique and desirable properties.

  • The content is located by its unique fingerprint which is derived from the actual content of the file being stored.
  • Every unique piece of content is atomic and movable
  • Content inside a CAFS storage is automatically de-duplicated, in other words, the way the CAFS works guarantees that any content stored will only ever be stored once so it’s very space efficient.
  • Content can be easily distributed across physical storage devices/servers/locations/geographies with minimal system management overhead. Stale content (that is content that is rarely accessed or is effectively soft archived) can be moved to lower cost storage dynamically ensuring the most accessed and most up to date data is always held on and served high performance storage.

Our storage scheme is fast, efficient, and capable of effectively unlimited storage, delivered elastically and with no administrative overhead placed on our customers for management. Read more about what’s under the hood here Content Addressable File Store.

Data Retention

Hornbill keeps a copy of your data as long as you are a customer. In the event you choose to terminate your agreement, Hornbill will retain your data for upto 30 Days from the date of termination. We will of course provide you with a copy of this data upon request in an industry standard machine readable format. Upon any termination, Hornbill shall use reasonable endeavors to assist in the migration of the customer’s data. Such assistance is to be subject to Hornbill’s terms for time and materials for consultancy services and its associated standard day rates. Hornbill also agrees that such estimates for work will be reasonable and appropriate to the scale of requests received for such data. This includes all backups and data relating to those backups.

A SQL data dump of your Hornbill instance will be provided (All SQL Create\Insert statements for your data) and a copy of file attachments via Secure FTP within a password encrypted ZIP. An email is then sent to the contacts associated to the Hornbill instance containing information about the data drop along with the key required to unencrypt the content.

In This Document