├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dependabot.yml └── workflows │ ├── go.yml │ ├── golangci-lint.yml │ └── release.yml ├── .gitignore ├── .golangci.yaml ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── cmd ├── main.go ├── main_test.go ├── serve.go ├── validate.go └── validate_test.go ├── docs ├── README.md ├── assets │ └── banner.jpeg ├── configuration.md ├── http.md ├── protections │ ├── access_logging.md │ ├── block_field_suggestions.md │ ├── enforce_post.md │ ├── max_aliases.md │ ├── max_batch.md │ ├── max_depth.md │ ├── max_tokens.md │ ├── obfuscate_upstream_errors.md │ ├── schema.md │ └── trusted_documents.md ├── run │ ├── docker.md │ ├── kubernetes.md │ └── tracing.md └── validation.md ├── go.mod ├── go.sum ├── graphql-protect.iml ├── internal ├── app │ ├── config │ │ ├── config.go │ │ └── config_test.go │ ├── http │ │ └── http.go │ ├── log │ │ └── log.go │ ├── metrics │ │ └── metrics.go │ └── otel │ │ └── otel.go ├── business │ ├── gql │ │ ├── gql.go │ │ └── gql_test.go │ ├── protect │ │ ├── protect.go │ │ └── protect_test.go │ ├── rules │ │ ├── accesslogging │ │ │ ├── accesslogging.go │ │ │ ├── accesslogging_test.go │ │ │ └── model.go │ │ ├── aliases │ │ │ ├── aliases.go │ │ │ └── aliases_test.go │ │ ├── batch │ │ │ ├── batch.go │ │ │ └── batch_test.go │ │ ├── block_field_suggestions │ │ │ ├── block_field_suggestions.go │ │ │ └── block_field_suggestions_test.go │ │ ├── enforce_post │ │ │ ├── enforce_post.go │ │ │ └── enforce_post_test.go │ │ ├── max_depth │ │ │ ├── max_depth.go │ │ │ └── max_depth_test.go │ │ ├── obfuscate_upstream_errors │ │ │ ├── obfuscate_upstream_errors.go │ │ │ └── obfuscate_upstream_errors_test.go │ │ └── tokens │ │ │ ├── tokens.go │ │ │ └── tokens_test.go │ ├── schema │ │ └── schema.go │ ├── trusteddocuments │ │ ├── dir_loader.go │ │ ├── gcp_loader.go │ │ ├── loader.go │ │ ├── memory_loader.go │ │ ├── model.go │ │ ├── model_test.go │ │ ├── nooploader.go │ │ ├── persisted_operations.go │ │ └── persisted_operations_test.go │ └── validation │ │ └── model.go └── http │ ├── debug │ └── debugging.go │ ├── middleware │ ├── metrics.go │ └── recover.go │ ├── proxy │ ├── proxy.go │ ├── proxy_test.go │ └── transport.go │ └── readiness │ ├── readiness.go │ └── readiness_test.go └── makefile /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/go.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/workflows/go.yml -------------------------------------------------------------------------------- /.github/workflows/golangci-lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/workflows/golangci-lint.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/.golangci.yaml -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/README.md -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/cmd/main.go -------------------------------------------------------------------------------- /cmd/main_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/cmd/main_test.go -------------------------------------------------------------------------------- /cmd/serve.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/cmd/serve.go -------------------------------------------------------------------------------- /cmd/validate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/cmd/validate.go -------------------------------------------------------------------------------- /cmd/validate_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/cmd/validate_test.go -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/README.md -------------------------------------------------------------------------------- /docs/assets/banner.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/assets/banner.jpeg -------------------------------------------------------------------------------- /docs/configuration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/configuration.md -------------------------------------------------------------------------------- /docs/http.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/http.md -------------------------------------------------------------------------------- /docs/protections/access_logging.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/access_logging.md -------------------------------------------------------------------------------- /docs/protections/block_field_suggestions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/block_field_suggestions.md -------------------------------------------------------------------------------- /docs/protections/enforce_post.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/enforce_post.md -------------------------------------------------------------------------------- /docs/protections/max_aliases.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/max_aliases.md -------------------------------------------------------------------------------- /docs/protections/max_batch.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/max_batch.md -------------------------------------------------------------------------------- /docs/protections/max_depth.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/max_depth.md -------------------------------------------------------------------------------- /docs/protections/max_tokens.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/max_tokens.md -------------------------------------------------------------------------------- /docs/protections/obfuscate_upstream_errors.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/obfuscate_upstream_errors.md -------------------------------------------------------------------------------- /docs/protections/schema.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/schema.md -------------------------------------------------------------------------------- /docs/protections/trusted_documents.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/protections/trusted_documents.md -------------------------------------------------------------------------------- /docs/run/docker.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/run/docker.md -------------------------------------------------------------------------------- /docs/run/kubernetes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/run/kubernetes.md -------------------------------------------------------------------------------- /docs/run/tracing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/run/tracing.md -------------------------------------------------------------------------------- /docs/validation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/docs/validation.md -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/go.sum -------------------------------------------------------------------------------- /graphql-protect.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/graphql-protect.iml -------------------------------------------------------------------------------- /internal/app/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/config/config.go -------------------------------------------------------------------------------- /internal/app/config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/config/config_test.go -------------------------------------------------------------------------------- /internal/app/http/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/http/http.go -------------------------------------------------------------------------------- /internal/app/log/log.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/log/log.go -------------------------------------------------------------------------------- /internal/app/metrics/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/metrics/metrics.go -------------------------------------------------------------------------------- /internal/app/otel/otel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/app/otel/otel.go -------------------------------------------------------------------------------- /internal/business/gql/gql.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/gql/gql.go -------------------------------------------------------------------------------- /internal/business/gql/gql_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/gql/gql_test.go -------------------------------------------------------------------------------- /internal/business/protect/protect.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/protect/protect.go -------------------------------------------------------------------------------- /internal/business/protect/protect_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/protect/protect_test.go -------------------------------------------------------------------------------- /internal/business/rules/accesslogging/accesslogging.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/accesslogging/accesslogging.go -------------------------------------------------------------------------------- /internal/business/rules/accesslogging/accesslogging_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/accesslogging/accesslogging_test.go -------------------------------------------------------------------------------- /internal/business/rules/accesslogging/model.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/accesslogging/model.go -------------------------------------------------------------------------------- /internal/business/rules/aliases/aliases.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/aliases/aliases.go -------------------------------------------------------------------------------- /internal/business/rules/aliases/aliases_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/aliases/aliases_test.go -------------------------------------------------------------------------------- /internal/business/rules/batch/batch.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/batch/batch.go -------------------------------------------------------------------------------- /internal/business/rules/batch/batch_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/batch/batch_test.go -------------------------------------------------------------------------------- /internal/business/rules/block_field_suggestions/block_field_suggestions.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/block_field_suggestions/block_field_suggestions.go -------------------------------------------------------------------------------- /internal/business/rules/block_field_suggestions/block_field_suggestions_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/block_field_suggestions/block_field_suggestions_test.go -------------------------------------------------------------------------------- /internal/business/rules/enforce_post/enforce_post.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/enforce_post/enforce_post.go -------------------------------------------------------------------------------- /internal/business/rules/enforce_post/enforce_post_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/enforce_post/enforce_post_test.go -------------------------------------------------------------------------------- /internal/business/rules/max_depth/max_depth.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/max_depth/max_depth.go -------------------------------------------------------------------------------- /internal/business/rules/max_depth/max_depth_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/max_depth/max_depth_test.go -------------------------------------------------------------------------------- /internal/business/rules/obfuscate_upstream_errors/obfuscate_upstream_errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/obfuscate_upstream_errors/obfuscate_upstream_errors.go -------------------------------------------------------------------------------- /internal/business/rules/obfuscate_upstream_errors/obfuscate_upstream_errors_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/obfuscate_upstream_errors/obfuscate_upstream_errors_test.go -------------------------------------------------------------------------------- /internal/business/rules/tokens/tokens.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/tokens/tokens.go -------------------------------------------------------------------------------- /internal/business/rules/tokens/tokens_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/rules/tokens/tokens_test.go -------------------------------------------------------------------------------- /internal/business/schema/schema.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/schema/schema.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/dir_loader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/dir_loader.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/gcp_loader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/gcp_loader.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/loader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/loader.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/memory_loader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/memory_loader.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/model.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/model.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/model_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/model_test.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/nooploader.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/nooploader.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/persisted_operations.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/persisted_operations.go -------------------------------------------------------------------------------- /internal/business/trusteddocuments/persisted_operations_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/trusteddocuments/persisted_operations_test.go -------------------------------------------------------------------------------- /internal/business/validation/model.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/business/validation/model.go -------------------------------------------------------------------------------- /internal/http/debug/debugging.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/debug/debugging.go -------------------------------------------------------------------------------- /internal/http/middleware/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/middleware/metrics.go -------------------------------------------------------------------------------- /internal/http/middleware/recover.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/middleware/recover.go -------------------------------------------------------------------------------- /internal/http/proxy/proxy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/proxy/proxy.go -------------------------------------------------------------------------------- /internal/http/proxy/proxy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/proxy/proxy_test.go -------------------------------------------------------------------------------- /internal/http/proxy/transport.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/proxy/transport.go -------------------------------------------------------------------------------- /internal/http/readiness/readiness.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/readiness/readiness.go -------------------------------------------------------------------------------- /internal/http/readiness/readiness_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/internal/http/readiness/readiness_test.go -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ldebruijn/graphql-protect/HEAD/makefile --------------------------------------------------------------------------------