# =============================================== # ANALYTICS # =============================================== extend type Query { analytics: AnalyticsQuery } extend type Mutation { analytics: AnalyticsMutation } # ----------------------------------------------- # QUERIES # ----------------------------------------------- """ Queries for Analytics """ type AnalyticsQuery { """ Fetch list of Analytics providers and their configuration """ providers( "Return only active providers" isEnabled: Boolean ): [AnalyticsProvider] @auth(requires: ["manage:system"]) } # ----------------------------------------------- # MUTATIONS # ----------------------------------------------- """ Mutations for Analytics """ type AnalyticsMutation { """ Update a list of Analytics providers and their configuration """ updateProviders( "List of providers" providers: [AnalyticsProviderInput]! ): DefaultResponse @auth(requires: ["manage:system"]) } # ----------------------------------------------- # TYPES # ----------------------------------------------- """ Analytics Provider """ type AnalyticsProvider { "Is the provider active" isEnabled: Boolean! "Unique identifier for this provider" key: String! "List of configuration properties, formatted as stringified JSON objects" props: [String] "Name of the provider" title: String! "Short description of the provider" description: String "Is the provider available for use" isAvailable: Boolean "Path to the provider logo" logo: String "Website of the provider" website: String "Configuration values for this provider" config: [KeyValuePair] } """ Analytics Configuration Input """ input AnalyticsProviderInput { "Is the provider active" isEnabled: Boolean! "Unique identifier of the provider" key: String! "Configuration values for this provider" config: [KeyValuePairInput] }