A GraphQL subscription is essentially a query where the client receives an update whenever the value of any field changes upstream.
Subscriptions are supported for all kinds of queries. All the concepts of queries hold true for subscriptions as well.
Hasura follows the GraphQL spec which allows for only one root field in a subscription.
For information about authenticating your subscriptions see the authentication section here.