## Annotations This package provides an HTTP API for interacting with both annotations and streams independently. The HTTP handlers are located in the `transport` folder. The code for interacting with the sqlite datastore is located in the `service.go` file. Definitions for the basic types & interfaces associated with annotations and streams used throughout the platform are located in the top-level `influxdb` package, in the `annotation.go` file. ### Anatomy An annotation is, at its simplest, a textual note on a range of time. The start and stop time of that range can be the same point in time, which represents an annotation at a single instance. Annotations can also have "stickers". "Stickers" allow users to "tag" the annotation with further granularity for filtering in key-value pairs. Some examples of sticker key-value pairs are: `"product: oss"`, `"product: cloud"`, or `"service: tasks"`, but keys and values can be any string. Every annotation belongs to a single "stream". A "stream" represents a logical grouping of annotated events. Some examples of stream names are: `"incidents"`, `"deployments"`, or `"marketing"`, but can be any string. A stream can also have a description to further clarify what annotated events may be expected in the stream. ### Use Requested annotations may be filtered by stream name, stickers, and/or time range. Streams may also be retrieved, in order to view their description. If a stream is deleted, all annotations associated with that stream are deleted as well. Every annotation that is created must have a stream associated with it - if a stream name is not provided when creating an annotation, it will be assigned to the default stream.