Personal API-token management
Token-management operations require an already authenticated client. A newly created token is active immediately.
The plaintext analog-wakatime_live_<token_uuid>_<32-character-secret> value is
returned only by creation. Listing tokens returns metadata, never the secret or
its stored hash.
Create the client
import Analog_WakaTime_SDK
async with Analog_WakaTime_SDK.ApiClient(configuration) as api_client:
auth_api = Analog_WakaTime_SDK.AuthApi(api_client)
Create a token
import Analog_WakaTime_SDK
request = Analog_WakaTime_SDK.CreateApiTokenRequest(
name="reporting-script",
)
created = await auth_api.create_api_token(request)
# Save created.token securely now. It cannot be retrieved again.
print(created.api_token.uuid)
print(created.api_token.prefix)
Do not print created.token in production logs.
Optional expiration
import Analog_WakaTime_SDK
from datetime import datetime, timezone
request = Analog_WakaTime_SDK.CreateApiTokenRequest(
name="temporary-report",
expires_at=datetime(2099, 1, 1, tzinfo=timezone.utc),
)
Omit expires_at to create a token without an automatic expiration date.
List token metadata
tokens = await auth_api.get_api_tokens()
for token in tokens.api_tokens:
print(
token.uuid,
token.name,
token.prefix,
token.is_active,
token.expires_at,
token.last_used_at,
)
Disable a token
import Analog_WakaTime_SDK
from uuid import UUID
request = Analog_WakaTime_SDK.UpdateApiTokenRequest(is_active=False)
await auth_api.update_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
update_api_token_request=request,
)
Enable a token again
import Analog_WakaTime_SDK
from uuid import UUID
request = Analog_WakaTime_SDK.UpdateApiTokenRequest(is_active=True)
await auth_api.update_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
update_api_token_request=request,
)
Delete a token
from uuid import UUID
await auth_api.delete_api_token(
token_uuid=UUID("00000000-0000-0000-0000-000000000000"),
)
Deletion is permanent. Create a new token if an integration needs access again.
Rotation procedure
- Create a new named token.
- Store it in the integration's secret store.
- Confirm the integration can read a protected endpoint.
- Disable the old token.
- Delete the old token after the migration window.