Skip to content
Snippets Groups Projects
.meshrc.yml 6.1 KiB
Newer Older
sources:
  - name: okuna
    handler:
      graphql:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
          X-Holi-User-ID: "{context.headers['x-holi-user-id']}"
          X-Holi-Session: "{context.headers['x-holi-session']}"
          X-Holi-Session-Expiry: "{context.headers['x-holi-session-expiry']}"
          X-Holi-User-Email: "{context.headers['x-holi-user-email']}"
          X-Disable-Sentry: "{context.headers['x-disable-sentry']}"
  - name: app-donations
    handler:
      graphql:
        endpoint: '{env.DONATIONS_API_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
      # Prefix for types
      - prefix:
          mode: wrap
          value: AppDonations_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
          value: appDonations_
          includeRootOperations: true
          includeTypes: false
  - name: app-goodnews
    handler:
      graphql:
        endpoint: '{env.GOODNEWS_API_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
    transforms:
      # Prefix for types
      - prefix:
          mode: wrap
          value: AppGoodNews_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: appGoodNews_
          includeRootOperations: true
          includeTypes: false
  - name: app-volunteering
    handler:
      graphql:
        endpoint: '{env.VOLUNTEERING_API_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
    transforms:
      # Prefix for types
      - prefix:
          mode: wrap
          value: AppVolunteering_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: appVolunteering_
          includeRootOperations: true
          includeTypes: false
Daniel Bimschas's avatar
Daniel Bimschas committed
  - name: geo
    handler:
      graphql:
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
Daniel Bimschas's avatar
Daniel Bimschas committed
    transforms:
      # Prefix for types
      - prefix:
          mode: wrap
          value: Geo_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: geo_
          includeRootOperations: true
          includeTypes: false
  - name: translation
    handler:
      graphql:
        endpoint: '{env.TRANSLATION_API_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
    transforms:
      # Prefix for types
      - prefix:
          mode: wrap
          value: Translation_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: translation_
          includeRootOperations: true
          includeTypes: false
  - name: notifications
    handler:
      graphql:
        endpoint: '{env.NOTIFICATIONS_API_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          sentry-trace: "{context.headers['sentry-trace']}"
          X-Holi-User-ID: "{context.headers['x-holi-user-id']}"
    transforms:
      # Prefix for types
      - prefix:
          mode: wrap
          value: Notifications_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: notifications_
          includeRootOperations: true
          includeTypes: false
  - name: moderation
    handler:
      graphql:
        endpoint: '{env.MODERATION_BACKEND_URL}'
        operationHeaders:
          Accept-Language: "{context.headers['accept-language']}"
          X-Holi-User-ID: "{context.headers['x-holi-user-id']}"
          X-Holi-Session: "{context.headers['x-holi-session']}"
          X-Holi-Session-Expiry: "{context.headers['x-holi-session-expiry']}"
          X-Holi-User-Email: "{context.headers['x-holi-user-email']}"
    transforms:
      - filterSchema:
          mode: bare | wrap
          filters:
            # mesh only the report mutation
            - Mutation.createReport
            # remove all queries
            - Query.!*
            # remove most of the types that aren't needed for reporting
            # gregor: don't see a way to do this as an include-filter - the other way around
            - Type.!{*Token*, UserRole, User, *Auth*, Create*, Pagination, Report, ReportsFilter, ReportEvent, ReportLogEvent, ReportStatus}
      # Prefix for types
      - prefix:
          mode: wrap
          value: Moderation_
          includeRootOperations: false
          includeTypes: true
      # Prefix for operations
      - prefix:
          mode: wrap
          value: moderation_
          includeRootOperations: true
          includeTypes: false


cache:
  redis:
    host: '{env.REDIS_HOST}'
    port: '{env.REDIS_PORT}'
    password: '{env.REDIS_PASSWORD}'
    url: 'redis://:{env.REDIS_PASSWORD}@{env.REDIS_HOST}:{env.REDIS_PORT}/{env.REDIS_DB}'
      cacheKey: '{operationName}-{documentString|hash}-{variableValues.offset}-{variableValues.limit}-{variableValues.geolocation.properties.place_id}-{variableValues.topicIds|hash}-{variableValues.skillIds|hash}'
      ttl: 0
      ttlPerCoordinate:
        # cache operation containing Query.discoverSpaces selection for 10 minutes
        - coordinate: Query.discoverSpaces
          ttl: 600000
  - maxDepth:
      n: 15 # maximum nesting level an operation is allowed to have