Compare commits
5 Commits
anoa/modul
...
shay/super
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6f6076c22 | ||
|
|
b9d5322c8a | ||
|
|
35b96a09d5 | ||
|
|
7dbedbeb1a | ||
|
|
116a66e3af |
1
changelog.d/12681.doc
Normal file
1
changelog.d/12681.doc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Add topics to synapse documentation.
|
||||||
157
docs/SUMMARY.md
157
docs/SUMMARY.md
@@ -88,19 +88,158 @@
|
|||||||
- [OpenTracing](opentracing.md)
|
- [OpenTracing](opentracing.md)
|
||||||
- [Database Schemas](development/database_schema.md)
|
- [Database Schemas](development/database_schema.md)
|
||||||
- [Experimental features](development/experimental_features.md)
|
- [Experimental features](development/experimental_features.md)
|
||||||
- [Synapse Architecture]()
|
- [Synapse Architecture](development/synapse_architechture.md)
|
||||||
- [Log Contexts](log_contexts.md)
|
- [Overview]()
|
||||||
- [Replication](replication.md)
|
- Flows of data through Synapse
|
||||||
- [TCP Replication](tcp_replication.md)
|
- Starts with a Request/BG Job/Module
|
||||||
- [Internal Documentation](development/internal_documentation/README.md)
|
- Processing
|
||||||
|
- Maybe Response
|
||||||
|
- Config
|
||||||
|
- Request Handling
|
||||||
|
- Clients
|
||||||
|
- Federation
|
||||||
|
- Internal Processing - there could be an exception!
|
||||||
|
- Storage
|
||||||
|
- Federation
|
||||||
|
- External Entities: Remote homeservers, Appservices, Pushers, Identity Servers
|
||||||
|
- Modules
|
||||||
|
- Workers/Replication/Redis/Organization of a large homeserver instance
|
||||||
|
- [Configuration]()
|
||||||
|
- Experimental config options
|
||||||
|
- Define how long they should live after the corresponding msc has merged
|
||||||
|
- [Logging]()
|
||||||
|
- combine with [Log Contexts](log_contexts.md)
|
||||||
|
- [Storage]()
|
||||||
|
- What is current database schema?
|
||||||
|
- Start by linking script that can compile full schema
|
||||||
|
- Is there a tool that can visualize a postgres db? - Shay to check
|
||||||
|
- [Database Backends]()
|
||||||
|
- [Database Migrations]()
|
||||||
|
- Background [Schema] Updates
|
||||||
|
- [Caching]()
|
||||||
|
- Cache tuning
|
||||||
|
- How to check sizes
|
||||||
|
- Nice to have a metric for max cache sizes
|
||||||
|
- How to add a cache to a [storage] function
|
||||||
|
- Why would you
|
||||||
|
- How to invalidate (with support for workers)
|
||||||
|
- [Request Listening]()
|
||||||
|
- Mention that we use Twisted
|
||||||
|
- [Servlets and Resources]()
|
||||||
|
- When to use one over the other (always use a servlet?)
|
||||||
|
- Unstable/release-based endpoints
|
||||||
|
- Don't put too many servlets on the same resource
|
||||||
|
- [Handlers]()
|
||||||
|
- Machinery behind the servlet that does all the processing
|
||||||
|
- [Background Jobs]()
|
||||||
|
- [Federation]()
|
||||||
|
- Federation Catchup
|
||||||
|
- [Data Types]()
|
||||||
|
- [Users]()
|
||||||
|
- Allowed username characters
|
||||||
|
- [Devices]()
|
||||||
|
- [Events]()
|
||||||
|
- What is an event?
|
||||||
|
- Different event formats depending on room version
|
||||||
|
- Outlier events, rejected events, dropped events
|
||||||
|
- [Rooms]()
|
||||||
|
- [Room DAG concepts](development/room-dag-concepts.md)
|
||||||
|
- [Sync]()
|
||||||
|
- [State Resolution]()
|
||||||
|
- [The Auth Chain Difference Algorithm](auth_chain_difference_algorithm.md)
|
||||||
|
- [User Authentication]()
|
||||||
- [Single Sign-On]()
|
- [Single Sign-On]()
|
||||||
- [SAML](development/saml.md)
|
- [SAML](development/saml.md)
|
||||||
- [CAS](development/cas.md)
|
- [CAS](development/cas.md)
|
||||||
- [Room DAG concepts](development/room-dag-concepts.md)
|
- [User-Interactive Auth]()
|
||||||
- [State Resolution]()
|
- [Password-based]()
|
||||||
- [The Auth Chain Difference Algorithm](auth_chain_difference_algorithm.md)
|
- [Password Auth Modules]()
|
||||||
|
- [Token-based]()
|
||||||
|
- [Rate Limiting]()
|
||||||
|
- Different rate limiting classes (Ratelimiter vs RequestRatelimiter)
|
||||||
|
- How does our rate limiting work
|
||||||
|
- When to use/add rate limiting
|
||||||
|
- Rate limiting for federation traffic
|
||||||
- [Media Repository](media_repository.md)
|
- [Media Repository](media_repository.md)
|
||||||
- [Room and User Statistics](room_and_user_statistics.md)
|
- [Email and HTML Templating]()
|
||||||
|
- [Presence]()
|
||||||
|
- What is Presence?
|
||||||
|
- How is it designed to work currently
|
||||||
|
- Why it is recommended to be disabled
|
||||||
|
- Why is this resource intensive
|
||||||
|
- Links and issues on how to fix this
|
||||||
|
- How it's implemented
|
||||||
|
- [Application Services]()
|
||||||
|
- [Push Notifications]()
|
||||||
|
- [Synapse Admin API]()
|
||||||
|
- [Synapse Modules]()
|
||||||
|
- [Workers]()
|
||||||
|
- Things to be mindful of in order to make your feature work with workers
|
||||||
|
- How to test a feature on workers
|
||||||
|
- [Replication](replication.md)
|
||||||
|
- [TCP Replication](tcp_replication.md)
|
||||||
|
- [Sources]()
|
||||||
|
- TypingSource, ReceiptSource, PresenceSource, etc
|
||||||
|
- Classes containing methods for storing and getting different types of data
|
||||||
|
- [Streams]()
|
||||||
|
- Stream Types (the ID of the stream)
|
||||||
|
- Stream Token: each entity added to the stream gets a unique, incremental token
|
||||||
|
- StreamReplication classes and clients
|
||||||
|
- How this interacts with sync?
|
||||||
|
- Stream token generators: Single Writer Only (sqlite), MultiWriterStreamIDGenerator (Postgres)
|
||||||
|
- [Notifier]()
|
||||||
|
- [Monitoring and Metrics]() # opentracing, phone home and metrics
|
||||||
|
- [Opentracing]()
|
||||||
|
- How does this work?
|
||||||
|
- How is this helpful?
|
||||||
|
- What's jaeger?
|
||||||
|
- How do I create and mutate a span?
|
||||||
|
- How are spans sent between homeservers?
|
||||||
|
- Only between whitelisted homeservers
|
||||||
|
- What areas are currently traced
|
||||||
|
- Database layer
|
||||||
|
- Servlets
|
||||||
|
- Crypto stuff
|
||||||
|
- [Metrics]()
|
||||||
|
- Prometheus
|
||||||
|
- How to make a new metrics / good practices
|
||||||
|
- What are all the current metrics and what each one means
|
||||||
|
- How to view in grafana
|
||||||
|
- Here's a quick example of making a new panel to visualize metrics
|
||||||
|
- Btw it would be nice to have a tooltip with an explainer for every graph in graphana
|
||||||
|
- [Room and User Statistics](room_and_user_statistics.md) # TODO: This page is currently useless
|
||||||
|
- [Testing]()
|
||||||
|
- [Unit Tests]()
|
||||||
|
- How to run the tests (partially in the contributing guide)
|
||||||
|
- IDE-specific examples
|
||||||
|
- How to run one test / one test case / run in parallel
|
||||||
|
- Documenting test environment variables: SYNAPSE_TEST_LOG_LEVEL, SYNAPSE_TEST_PERSISTENT_SQLITE_DB, SYNAPSE_POSTGRES etc.
|
||||||
|
- Test case versus test method
|
||||||
|
- prepare, make_homeserver, default_config, @override_config decorator, @parameterized decorator, pump/reactor.advance
|
||||||
|
- Test utilities: fake homeserver, federation, workers, channels, requests, HomeServerTestCase.helper
|
||||||
|
- How to use them in your tests at a high level
|
||||||
|
- How they are implemented
|
||||||
|
- Different inherited TestCase classes: HomeServerTestCase, FederatedHomeServerTestCase(sp?), TestCase
|
||||||
|
- Test pattern: How to start a request, check the state of the homeserver, respond to the request
|
||||||
|
- Ensuring the right servlets for your test are registered
|
||||||
|
- Good practice: use storage methods vs. tampering with the database directly (database schema changes)
|
||||||
|
- Dealing with deferreds/async (get_success/get_failure).
|
||||||
|
- Mocking - async mocks
|
||||||
|
- Organization of tests
|
||||||
|
- Skipping tests
|
||||||
|
- [Integration Tests]()
|
||||||
|
- [Complement]()
|
||||||
|
- Point to Complement's documentation on its structure and how to write a test
|
||||||
|
- How to run Complement against Synapse
|
||||||
|
- Document Synapse's Complement images and how they're built
|
||||||
|
- Which Complement build flags does Synapse support
|
||||||
|
- Unstable features
|
||||||
|
- Synapse's Complement Blacklist
|
||||||
|
- [Sytest]()
|
||||||
|
- You should prefer Complement :)
|
||||||
|
- Helper functions
|
||||||
|
- Dealing with race conditions
|
||||||
|
- Link to that one perl helper doc Matthew wrote
|
||||||
- [Scripts]()
|
- [Scripts]()
|
||||||
|
|
||||||
# Other
|
# Other
|
||||||
|
|||||||
Reference in New Issue
Block a user