# Source: https://grafbase.com/docs/gateway/security.md

# Security

Security is a critical aspect of any application. It is important to ensure that the application is secure and that the data is protected. This section will cover the security aspects of the application.

## Control the Operations with Trusted Documents

The application should control the operations that can be performed on the data. This can be done by using trusted documents that define the operations that can be performed on the data. The application should only allow the operations that are defined in the trusted documents.

Read more about [trusted documents](https://grafbase.com/docs/gateway/security/trusted-documents.md).

## Schema Contracts

Schema contracts are a powerful feature that allows you to define and enforce a specific subset of the schema either statically or dynamically.
Read more about [schema contracts](https://grafbase.com/docs/gateway/security/schema-contracts.md).


## Rate Limiting

Rate limiting is an important security measure that can help protect the application from abuse. It can help prevent malicious users from overwhelming the application with requests. Rate limiting can be implemented at various levels, such as the global operation level, or the per-subgraph level.

Read more about [rate limiting](https://grafbase.com/docs/gateway/security/rate-limiting.md).

## Operation Limits

Operation limits can help protect the application from abuse by limiting the cost of operations.

Read more about [operation limits](https://grafbase.com/docs/gateway/security/operation-limits.md).

## Authentication

Restrict access to your federated graph, authenticating users.

Read more about [authentication](https://grafbase.com/docs/gateway/security/authentication.md).

## Authorization

Restrict access to fields, objects, and more for a given operation.

Read more about [authorization](https://grafbase.com/docs/gateway/security/authorization.md).

## Access Logs

Access logs can help you monitor and track the activity on your federated graph. Grafbase Gateway provides a fully customizable logging system that allows you to log the requests and responses.

Read more about [access logs](https://grafbase.com/docs/gateway/security/access-logs.md).

## Access Tokens

Access tokens are used to authenticate users and grant them access to the federated graph. Access tokens can be used to control access to the federated graph and to protect the data.

Read more about [access logs](https://grafbase.com/docs/gateway/security/access-logs.md).