User Guide
Internal Documentation
create_app()
BaseConfig
BaseConfig.CLEANUP_CRON_HOUR
BaseConfig.CLEANUP_CRON_MINUTE
BaseConfig.CLEANUP_RUN_ON_START
BaseConfig.CORS_ORIGINS
BaseConfig.DATABASE_ECHO
BaseConfig.DATABASE_URL
BaseConfig.DEBUG
BaseConfig.DEFAULT_USER_ADMIN_EMAIL
BaseConfig.DEFAULT_USER_ADMIN_NAME
BaseConfig.DEFAULT_USER_ADMIN_PASSWORD
BaseConfig.ENV
BaseConfig.JSON_SORT_KEYS
BaseConfig.JWT_ACCESS_TOKEN_EXPIRES
BaseConfig.JWT_HEADER_NAME
BaseConfig.JWT_HEADER_TYPE
BaseConfig.JWT_REFRESH_TOKEN_EXPIRES
BaseConfig.JWT_SECRET_KEY
BaseConfig.JWT_TOKEN_LOCATION
BaseConfig.SQLALCHEMY_DATABASE_URI
BaseConfig.SQLALCHEMY_ENGINE_OPTIONS
BaseConfig.SQLALCHEMY_TRACK_MODIFICATIONS
BaseConfig.TESTING
DevConfig
DevConfig.DEBUG
DevConfig.ENV
ProdConfig
ProdConfig.DEBUG
ProdConfig.ENV
TestConfig
TestConfig.DEBUG
TestConfig.ENV
TestConfig.TESTING
get_config_class()
register_routes()
openapi_spec()
login()
logout()
me()
refresh()
resolve_anonymous()
submit_anonymous()
cleanup_tokens()
dashboard_metrics()
change_question_state()
create_question()
get_question()
list_questions()
serialize_question()
update_question()
export_reports()
survey_summary()
team_summary()
change_survey_state()
create_survey()
get_survey()
list_surveys()
serialize_survey()
update_survey()
change_team_state()
create_team()
get_team()
list_teams()
serialize_team()
update_team()
export_tokens()
generate_tokens()
list_tokens()
build_claims()
check_password()
create_tokens()
profile_from_jwt()
refresh_access_token()
revoke_token()
verify_user_active_role()
is_token_revoked()
get_dashboard_metrics()
set_question_state()
export_summary_csv()
get_survey_summary()
get_team_summary()
get_anonymous_survey()
submit_anonymous_responses()
deactivate_expired_surveys()
set_survey_state()
set_team_state()
cleanup_expired_tokens()
export_tokens_csv()
generate_tokens_for_survey()
is_token_valid_for_submission()
mark_token_used()
AuditLog
AuditLog.action
AuditLog.changed_by_user
AuditLog.changed_by_user_id
AuditLog.created_at
AuditLog.entity_id
AuditLog.entity_type
AuditLog.id
AuditLog.ip_address
AuditLog.metadata_
AuditLog.new_data
AuditLog.previous_data
AuditLog.triggered_by
Category
Category.created_at
Category.description
Category.id
Category.name
Category.question_categories
Category.state
Question
Question.created_at
Question.id
Question.is_required
Question.options
Question.order_position
Question.responses
Question.state
Question.survey
Question.survey_id
Question.text
Question.type
QuestionCategory
QuestionCategory.assigned_by_user
QuestionCategory.assigned_by_user_id
QuestionCategory.category
QuestionCategory.category_id
QuestionCategory.created_at
QuestionCategory.id
QuestionCategory.question
QuestionCategory.question_id
Response
Response.answer
Response.created_at
Response.id
Response.question
Response.question_id
Response.state
Response.survey_token
Response.survey_token_id
Role
Role.created_at
Role.description
Role.id
Role.name
Role.state
Role.users
Survey
Survey.created_at
Survey.created_by_user
Survey.created_by_user_id
Survey.description
Survey.expires_at
Survey.id
Survey.is_anonymous
Survey.questions
Survey.state
Survey.team
Survey.team_id
Survey.title
Survey.tokens
SurveyToken
SurveyToken.created_at
SurveyToken.employee_identifier
SurveyToken.expires_at
SurveyToken.id
SurveyToken.is_used
SurveyToken.responses
SurveyToken.survey
SurveyToken.survey_id
SurveyToken.team
SurveyToken.team_id
SurveyToken.token
SurveyToken.used_at
Team
Team.created_at
Team.description
Team.id
Team.name
Team.state
Team.survey_tokens
Team.surveys
Team.users
User
User.created_at
User.created_surveys
User.email
User.id
User.name
User.password_hash
User.role
User.role_id
User.state
User.team
User.team_id
role_required()
user_required()
create_scheduler()
start_scheduler()
Create BackgroundScheduler with registered jobs.
app (Flask) – Flask application instance
Configured scheduler instance
BackgroundScheduler
Start BackgroundScheduler safely, avoiding double-start under Flask reloader.
debug (Optional[bool]) – Debug flag to infer reloader behavior