With a permanent API key, you will be able to generate JWT tokens as needed. These tokens have an expiration time of 24 hours.
Each token has 24 hours before expiring, even if a new token has been created. Each will function for the full 24 hours.
For REST calls, you will need to generate a new token to continue making those calls before the end of the 24-hour period.
For Streaming WebSocket calls, once a connection has been established within the initial 24 hour period, your connection will remain open beyond the 24-hour period until the connection has been closed. This connection can be closed at any point by yourselves. It may also occur anywhere between 30 minutes to 24 hours on the dfuse side.
Your code should gracefully handle reconnection. See the section "Never Miss a Beat" in the documentation for more details.