Skip to Content
⚠️Active Development Notice: TimeTiles is under active development. Information may be placeholder content or not up-to-date.
Admin GuideUsage Limits & Resources

Usage Limits & Resource Management

Configuration for quotas, rate limiting, and HTTP caching.

Trust Levels

Users are assigned trust levels that determine their resource quotas and rate limits.

LevelNameDescription
0UntrustedNew or unverified accounts with minimal access
1BasicBasic users with conservative limits
2RegularStandard users with normal operational limits
3TrustedTrusted users with enhanced access
4Power UserAdvanced users with generous allowances
5UnlimitedAdministrators with no restrictions

Quotas

Default Quotas by Trust Level

Untrusted (Level 0)

Quota TypeLimit
Active Schedules0
URL Fetches/Day0
File Uploads/Day1
Events per Import100
Total Events100
Import Jobs/Day1
Max File Size1 MB

Basic (Level 1)

Quota TypeLimit
Active Schedules1
URL Fetches/Day5
File Uploads/Day3
Events per Import1,000
Total Events5,000
Import Jobs/Day5
Max File Size10 MB

Regular (Level 2)

Quota TypeLimit
Active Schedules5
URL Fetches/Day20
File Uploads/Day10
Events per Import10,000
Total Events50,000
Import Jobs/Day20
Max File Size50 MB

Trusted (Level 3)

Quota TypeLimit
Active Schedules20
URL Fetches/Day100
File Uploads/Day50
Events per Import50,000
Total Events500,000
Import Jobs/Day100
Max File Size100 MB

Power User (Level 4)

Quota TypeLimit
Active Schedules100
URL Fetches/Day500
File Uploads/Day200
Events per Import200,000
Total Events2,000,000
Import Jobs/Day500
Max File Size500 MB

Unlimited (Level 5)

Quota TypeLimit
Active SchedulesUnlimited (-1)
URL Fetches/DayUnlimited (-1)
File Uploads/DayUnlimited (-1)
Events per ImportUnlimited (-1)
Total EventsUnlimited (-1)
Import Jobs/DayUnlimited (-1)
Max File Size1000 MB

Custom Quotas

Set user-specific overrides in the admin panel (/admin/users):

{ "quotas": { "maxActiveSchedules": 50, "maxFileUploadsPerDay": 100, "maxTotalEvents": 1000000 } }

Custom quotas override trust level defaults.

Monitoring Usage

View usage in:

  • Admin panel: /admin/users
  • API endpoint: GET /api/quotas
  • Response headers on quota-enforced operations

Rate Limiting

File Upload Rate Limits by Trust Level

Trust LevelBurstHourlyDaily
Untrusted (0)1 per min1/hour1/day
Basic (1)1 per 10s3/hour3/day
Regular (2)1 per 5s5/hour20/day
Trusted (3)2 per 5s20/hour50/day
Power User (4)5 per 5s100/hour200/day
Unlimited (5)10 per sec1000/hourNo daily limit

API General Rate Limits by Trust Level

Trust LevelBurstHourly
Untrusted (0)1 per sec10/hour
Basic (1)2 per sec30/hour
Regular (2)5 per sec50/hour
Trusted (3)10 per sec200/hour
Power User (4)20 per sec1000/hour
Unlimited (5)100 per sec10000/hour

Troubleshooting Rate Limits

429 Errors:

  • Check which window failed (burst/hourly/daily)
  • Verify user’s trust level
  • Wait for reset time in response

Debugging:

# Check logs for rate limit info grep "Rate limit" /var/log/timetiles/app.log # Response headers show limits X-RateLimit-Limit: 10 X-RateLimit-Remaining: 7 X-RateLimit-Reset: 2025-10-06T15:30:00.000Z

HTTP Caching

Environment Variables

# Cache directory (persistent location) URL_FETCH_CACHE_DIR=/var/cache/timetiles/http # Maximum cache size in bytes (default: 100MB) URL_FETCH_CACHE_MAX_SIZE=104857600 # Default TTL in seconds (default: 1 hour) URL_FETCH_CACHE_TTL=3600 # Respect server Cache-Control headers (default: true) URL_FETCH_CACHE_RESPECT_CACHE_CONTROL=true

Production Settings

# Recommended for production URL_FETCH_CACHE_DIR=/var/cache/timetiles/http URL_FETCH_CACHE_MAX_SIZE=524288000 # 500MB URL_FETCH_CACHE_TTL=3600 # 1 hour URL_FETCH_CACHE_RESPECT_CACHE_CONTROL=true

Development Settings

# Recommended for development URL_FETCH_CACHE_DIR=.cache/http URL_FETCH_CACHE_MAX_SIZE=52428800 # 50MB URL_FETCH_CACHE_TTL=300 # 5 minutes

Cache Management

Check cache size:

du -sh /var/cache/timetiles/http/

Clear cache:

rm -rf /var/cache/timetiles/http/*

Monitor cache:

# View cache entries ls -lh /var/cache/timetiles/http/entries/ # Check cache metadata cat /var/cache/timetiles/http/index.json | jq .

Troubleshooting

High cache misses:

  • Increase TTL: URL_FETCH_CACHE_TTL=86400 (24 hours)
  • Increase size: URL_FETCH_CACHE_MAX_SIZE=524288000 (500MB)
  • Check if server sends Cache-Control: no-cache

Stale data:

  • Reduce TTL: URL_FETCH_CACHE_TTL=1800 (30 minutes)
  • Enable bypass on manual triggers in scheduled import settings
  • Clear cache: rm -rf /var/cache/timetiles/http/*

Disk space issues:

  • Reduce max size: URL_FETCH_CACHE_MAX_SIZE=52428800 (50MB)
  • Reduce TTL: URL_FETCH_CACHE_TTL=1800 (30 minutes)
  • Clear cache manually
Last updated on