Access Watch is a security monitoring integration that tracks user access attempts to sensitive data. This integration works with Telex to log unauthorized access attempts and notify the team in real-time. It ensures that access control policies are enforced and potential security threats are identified promptly.
- Sign up on Telex: Telex Sign-Up
- Create an Organization and Channel
- After signing up, create an organization and a channel where notifications will be sent.
- Set Up the Integration
- In Telex, create a new app integration.
- Use the integration JSON URL:
/integration.json
from your deployed instance.
This project is configured to be deployed on Render without additional setup.
- Go to Render and create a new PostgreSQL database.
- Copy the connection string and set it as
DATABASE_URL
in your Render environment variables.
- Create a new Web Service on Render.
- Connect your GitHub repository: Access Watch Repo
- Set up environment variables (
DATABASE_URL
,SECRET_KEY
,WEB_CONCURRENCY=4
). - The
build.sh
script in the project already includes all necessary commands for database migration and cache table creation. - Start the service.
After deploying, test the integration by triggering secured access attempts.
Use the provided authentication endpoints to create a user and obtain a token.
https://access-watch-ix9w.onrender.com
POST /api/v1/users/
Content-Type: application/json
{
"username": "testuser",
"password": "securepassword"
}
POST /api/v1/users/login/
Content-Type: application/json
{
"username": "testuser",
"password": "securepassword"
}
This will return an access token that must be included in requests to protected endpoints.
Once logged in, try accessing secured endpoints. Unauthorized attempts will be logged and sent to Telex.
GET /api/v1/secured-data/
Authorization: Bearer YOUR_ACCESS_TOKEN
If the user does not have the required permissions, the attempt will be logged in Telex.
Notifications will be sent to the access watch telex channel.
To test quickly, users can make a request to a protected endpoint without an authentication token. The integration checks for two types of users:
- Anonymous users (no authentication token provided)
- Authenticated but unauthorized users (valid token, but no permission)
Users can test easily as anonymous users by simply making a request to a protected endpoint without a token:
GET [/api/v1/secured-data/](https://access-watch-ix9w.onrender.com/api/v1/secured-data)
This will immediately trigger a notification in the attempts-to-access-sensitive-data channel.
To test as an authenticated but unauthorized user:
- Sign up following the step in the register section above.
- Login to get an access token.
- Make a request to the protected endpoint with the token.
If the user does not have the necessary permissions, the access attempt will be logged immediately in the attempts-to-access-sensitive-data channel.
Example notification on Test Telex organization in attempts-to-access-sensitive-data channel