Newer
Older
sources:
- name: okuna
handler:
graphql:
endpoint: '{env.OKUNA_URL}'
operationHeaders:
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:
mode: wrap
value: AppDonations_
includeRootOperations: false
includeTypes: true
# Prefix for operations
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
graphql:
endpoint: '{env.VOLUNTEERING_API_URL}'
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
endpoint: '{env.GEO_API_URL}'
operationHeaders:
Accept-Language: "{context.headers['accept-language']}"
sentry-trace: "{context.headers['sentry-trace']}"
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
- 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

Daniel Bimschas
committed
logger: './logger'
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}'
plugins:
- responseCache:
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
serve:
browser: false