SYMBOL INDEX (140 symbols across 31 files) FILE: kubelab-backend/hooks/hooks.go function PocketBaseInit (line 20) | func PocketBaseInit(app *pocketbase.PocketBase) error { function executeEventActions (line 42) | func executeEventActions(app *pocketbase.PocketBase, event string, table... function executeEventAction (line 63) | func executeEventAction(event, table, action_type, action, action_params... function doCommand (line 75) | func doCommand(action, action_params string, record *models.Record) error { function doPost (line 106) | func doPost(action, action_params string, record *models.Record) error { FILE: kubelab-backend/main.go function defaultPublicDir (line 21) | func defaultPublicDir() string { function init (line 30) | func init() { function main (line 36) | func main() { FILE: kubelab-backend/pkg/controller/exercise.go function setupExerciseResources (line 14) | func setupExerciseResources(e *core.RecordUpdateEvent, app *pocketbase.P... function deleteExerciseResources (line 119) | func deleteExerciseResources(e *core.RecordUpdateEvent, app *pocketbase.... FILE: kubelab-backend/pkg/controller/handler.go function HandleLabSessions (line 8) | func HandleLabSessions(e *core.RecordUpdateEvent, app *pocketbase.Pocket... function HandleExerciseSessions (line 15) | func HandleExerciseSessions(e *core.RecordUpdateEvent, app *pocketbase.P... FILE: kubelab-backend/pkg/controller/lab.go function deployVCluster (line 16) | func deployVCluster(e *core.RecordUpdateEvent, app *pocketbase.PocketBas... function deleteClusterResources (line 80) | func deleteClusterResources(e *core.RecordUpdateEvent, app *pocketbase.P... FILE: kubelab-backend/pkg/controller/sessions.go function AutoSessionSyncController (line 12) | func AutoSessionSyncController(app *pocketbase.PocketBase) error { FILE: kubelab-backend/pkg/controller/util.go function namespaceName (line 12) | func namespaceName(e *core.RecordUpdateEvent, lab string) string { function logAndReturnErr (line 16) | func logAndReturnErr(err error) error { function fetchBodyFromURL (line 21) | func fetchBodyFromURL(url string) ([]byte, error) { FILE: kubelab-backend/pkg/env/env.go type config (line 9) | type config struct function Init (line 26) | func Init() { FILE: kubelab-backend/pkg/helm/helm.go constant Prefix (line 14) | Prefix = "kubelab" function GetNamespaceName (line 16) | func GetNamespaceName(labName, username string) string { function CreateHelmClient (line 20) | func CreateHelmClient(labName, username string) (helmclient.Client, erro... function AddHelmRepositoryToClient (line 31) | func AddHelmRepositoryToClient(helmClient helmclient.Client, repositoryN... function CreateOrUpdateHelmRelease (line 40) | func CreateOrUpdateHelmRelease(helmClient helmclient.Client, chartName, ... function GetHelmRelease (line 55) | func GetHelmRelease(helmClient helmclient.Client, releaseName string) (*... FILE: kubelab-backend/pkg/k8s/config.go function Init (line 23) | func Init() { function GetClusterVersion (line 70) | func GetClusterVersion() (string, error) { function GetClusterApi (line 82) | func GetClusterApi() (string, error) { FILE: kubelab-backend/pkg/k8s/deployment.go type DeploymentParams (line 17) | type DeploymentParams struct function CreateDeployment (line 30) | func CreateDeployment(params DeploymentParams) (*appsv1.Deployment, erro... function createConfigMap (line 47) | func createConfigMap(namespace, name string, data map[string]string) { function constructDeployment (line 57) | func constructDeployment(name, namespace, image string, replicas int32, ... function DeleteDeployment (line 247) | func DeleteDeployment(namespace, name string) error { function deleteConfigMap (line 254) | func deleteConfigMap(namespace, name string) { function WaitForDeployment (line 260) | func WaitForDeployment(namespace, name string) error { FILE: kubelab-backend/pkg/k8s/ingress.go type IngressParams (line 11) | type IngressParams struct function CreateIngress (line 22) | func CreateIngress(params IngressParams) (*networkingv1.Ingress, error) { function DeleteIngress (line 118) | func DeleteIngress(namespace string, name string) error { FILE: kubelab-backend/pkg/k8s/namespace.go function GetTotalNamespaces (line 13) | func GetTotalNamespaces() (string, error) { type NamespaceParams (line 27) | type NamespaceParams struct function CreateNamespace (line 32) | func CreateNamespace(params NamespaceParams) error { function DeleteNamespace (line 54) | func DeleteNamespace(namespace string) error { function GetTotalNamespacesByPrefix (line 58) | func GetTotalNamespacesByPrefix(prefix string) (int, error) { FILE: kubelab-backend/pkg/k8s/pod.go function GetPodByName (line 8) | func GetPodByName(namespace string, name string) (*v1.Pod, error) { FILE: kubelab-backend/pkg/k8s/resourcequota.go function CreateResourceQuota (line 9) | func CreateResourceQuota(namespace string, name string, pods string, sto... FILE: kubelab-backend/pkg/k8s/secret.go function GetSecretByName (line 8) | func GetSecretByName(namespace string, name string) (*v1.Secret, error) { FILE: kubelab-backend/pkg/k8s/service.go type ServiceParams (line 10) | type ServiceParams struct function CreateService (line 17) | func CreateService(params ServiceParams) (*v1.Service, error) { function DeleteService (line 50) | func DeleteService(namespace string, name string) error { FILE: kubelab-backend/pkg/util/helpers.go function StringParser (line 9) | func StringParser(s string) string { FILE: kubelab-fill/upload.py class Lab (line 6) | class Lab: method __init__ (line 7) | def __init__(self, title, description, docs): class Exercise (line 13) | class Exercise: method __init__ (line 14) | def __init__(self, title, description, docs, hint, solution, check, bo... function post_request (line 25) | def post_request(url, data): function main (line 34) | def main(): function get_labs_from_dir (line 84) | def get_labs_from_dir(path): function get_exercises_from_dir (line 103) | def get_exercises_from_dir(path, level=1, parent=None): function parse_name (line 129) | def parse_name(name): FILE: kubelab-fill/users_import.py class User (line 8) | class User: method __init__ (line 9) | def __init__(self, email, password, passwordConfirm, name): function post_request (line 16) | def post_request(url, data): function main (line 24) | def main(): function get_users_from_csv (line 40) | def get_users_from_csv(path): FILE: kubelab-score/score_calculation.py class User (line 7) | class User: method __init__ (line 8) | def __init__(self, id, name, email, username): class ExerciseSession (line 15) | class ExerciseSession: method __init__ (line 16) | def __init__(self, id, userId, startTime, endTime): function get_request (line 23) | def get_request(url): function main (line 32) | def main(): function get_users_from_users_url (line 54) | def get_users_from_users_url(users_url): function get_exercise_sessions_from_exercise_sessions_url (line 69) | def get_exercise_sessions_from_exercise_sessions_url(exercises_sessions_... FILE: kubelab-ui/src/lib/pocketbase/generated-types.ts type Collections (line 5) | enum Collections { type IsoDateString (line 21) | type IsoDateString = string type RecordIdString (line 22) | type RecordIdString = string type HTMLString (line 23) | type HTMLString = string type BaseSystemFields (line 26) | type BaseSystemFields = { type AuthSystemFields (line 35) | type AuthSystemFields = { type CompaniesRecord (line 44) | type CompaniesRecord = { type ExerciseSessionLogsTypeOptions (line 49) | enum ExerciseSessionLogsTypeOptions { type ExerciseSessionLogsRecord (line 53) | type ExerciseSessionLogsRecord = { type ExerciseSessionsRecord (line 60) | type ExerciseSessionsRecord = { type ExercisesRecord (line 68) | type ExercisesRecord = { type FaqsRecord (line 79) | type FaqsRecord = { type FeaturesRecord (line 84) | type FeaturesRecord = { type HooksEventOptions (line 88) | enum HooksEventOptions { type HooksActionTypeOptions (line 94) | enum HooksActionTypeOptions { type HooksRecord (line 98) | type HooksRecord = { type LabSessionsRecord (line 108) | type LabSessionsRecord = { type LabsRecord (line 116) | type LabsRecord = { type NotificationsTypeOptions (line 122) | enum NotificationsTypeOptions { type NotificationsRecord (line 125) | type NotificationsRecord = { type PlansRecord (line 132) | type PlansRecord = { type UsersRoleOptions (line 140) | enum UsersRoleOptions { type UsersRecord (line 144) | type UsersRecord = { type CompaniesResponse (line 154) | type CompaniesResponse = Required & BaseSystemFields type ExerciseSessionLogsResponse (line 155) | type ExerciseSessionLogsResponse = Required = Required = Required & ... type FaqsResponse (line 158) | type FaqsResponse = Required & BaseSystemFields type FeaturesResponse (line 159) | type FeaturesResponse = Required & BaseSystemFields type HooksResponse (line 160) | type HooksResponse = Required & BaseSystemFields type LabSessionsResponse (line 161) | type LabSessionsResponse = Required & BaseSystemFields type NotificationsResponse (line 163) | type NotificationsResponse = Required = Required & BaseSyst... type UsersResponse (line 165) | type UsersResponse = Required & AuthSyst... type CollectionRecords (line 169) | type CollectionRecords = { type CollectionResponses (line 184) | type CollectionResponses = { FILE: kubelab-ui/src/lib/pocketbase/index.ts function login (line 10) | async function login( function logout (line 23) | function logout() { FILE: kubelab-ui/src/lib/pocketbase/ui.ts function alertOnFailure (line 4) | async function alertOnFailure(request: () => void) { FILE: kubelab-ui/src/lib/stores/data.ts function getLabSession (line 28) | async function getLabSession(labId: string) { function getLabSessionsByLab (line 32) | async function getLabSessionsByLab(labId: string) { function filterExerciseSessionsByLab (line 36) | function filterExerciseSessionsByLab(labId: string) { function filterExercisesByLab (line 46) | function filterExercisesByLab(labId: string) { function getExerciseSessionByExercise (line 51) | function getExerciseSessionByExercise(exerciseId: string) { function checkIfExerciseIsDone (line 57) | function checkIfExerciseIsDone(exercise_id: string) { function setExerciseByExerciseSession (line 65) | async function setExerciseByExerciseSession(exerciseSessionId: string) { function setExerciseSessionByExercise (line 81) | async function setExerciseSessionByExercise(exerciseId: string) { type UpdateFilterEnum (line 97) | enum UpdateFilterEnum { type UpdateFilter (line 102) | interface UpdateFilter { function updateDataStores (line 107) | async function updateDataStores(filter: UpdateFilter = { filter: UpdateF... function setLabStartTime (line 171) | async function setLabStartTime(labSessionId: string) { function setLabEndTime (line 188) | async function setLabEndTime(labSessionId: string) { function setExerciseStartTime (line 205) | async function setExerciseStartTime(exerciseSessionId: string) { function setExerciseEndTime (line 222) | async function setExerciseEndTime(exerciseSessionId: string) { FILE: kubelab-ui/src/lib/stores/layout_store.ts type LayoutStore (line 3) | interface LayoutStore { function toggle_state (line 17) | function toggle_state(key: keyof LayoutStore) { type LayoutKeysByType (line 24) | type LayoutKeysByType = keyof { function toggle_number (line 28) | function toggle_number(key: LayoutKeysByType) { FILE: kubelab-ui/src/lib/stores/metadata.ts type Metadata (line 3) | interface Metadata { FILE: kubelab-ui/src/lib/types.ts type DeploymentStatus (line 1) | enum DeploymentStatus { type Deployment (line 8) | interface Deployment { type NavRoute (line 15) | interface NavRoute { FILE: kubelab-ui/src/lib/utils/clickOutside.ts function clickOutside (line 1) | function clickOutside(node: any) { FILE: kubelab-ui/src/lib/utils/enums.ts type Color (line 1) | enum Color { FILE: kubelab-ui/src/lib/utils/time.ts function getTimeAgo (line 1) | function getTimeAgo(isoString: string) { function getDeltaTime (line 29) | function getDeltaTime(startIsoString: string, endIsoString: string) {