-
Notifications
You must be signed in to change notification settings - Fork 3
renamed attraccess to fabaccess #201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Debugging Log Exposes User Credentials
A debugging console.log statement, console.log('usernameOrEmail', usernameOrEmail);, was accidentally committed in the getUserByAuthenticationDetails method. This line should be removed from production as it logs user credential information.
apps/api/src/users-and-auth/auth/auth.service.ts#L149-L151
Bug: Database File Migration Logic Fails
The fabaccessDbFile variable is incorrectly set to 'attraccess.sqlite', making it identical to attraccessDbFile. This breaks the intended database file migration logic, which should use 'fabaccess.sqlite' as the new default and fall back to 'attraccess.sqlite' if the old file exists.
apps/api/src/database/datasource.ts#L40-L54
BugBot free trial expires on July 22, 2025
You have used $0.00 of your $0.00 spend limit so far. Manage your spend limit in the Cursor dashboard.
Was this report helpful? Give feedback by reacting with 👍 or 👎
|
🐳 Docker images built and pushed: GitHub Container Registry: Image Digest: |
|
🐳 Docker images built and pushed: GitHub Container Registry: Image Digest: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by Korbit AI
Korbit automatically attempts to detect when you fix issues in new commits.
| Category | Issue | Status |
|---|---|---|
| Redundant Database File Paths ▹ view | ||
| Over-exposed External Module ▹ view | ||
| Inconsistent Component Directory Structure ▹ view | ||
| Magic number in component ▹ view | ||
| Unexplained Complex Regex Pattern ▹ view | ||
| Missing interface purpose documentation ▹ view |
Files scanned
Due to the exceptionally large size of this PR, I've limited my review to the following files:
| File Path | Reviewed |
|---|---|
| apps/api/src/fabreader/events.ts | ✅ |
| apps/api/src/app/app.service.ts | ✅ |
| libs/plugins-frontend-ui/src/lib/components/index.ts | ✅ |
| apps/api/src/users-and-auth/users/dtos/paginatedUsersResponse.dto.ts | ✅ |
| apps/api/src/resources/dtos/paginatedResourceResponse.dto.ts | ✅ |
| libs/plugins-backend-sdk/src/lib/auth.types.ts | ✅ |
| apps/api/src/resources/usage/dtos/getActiveUsageSession.dto.ts | ✅ |
| libs/plugins-frontend-sdk/src/lib/frontend.routing.ts | ✅ |
| apps/api/src/resources/usage/dtos/GetResourceHistoryResponse.dto.ts | ✅ |
| apps/api/src/resources/sse/sse.module.ts | ✅ |
| apps/api/src/fabreader/dtos/update-reader-response.dto.ts | ✅ |
| apps/api/src/resources/groups/errors/groupNotFound.error.ts | ✅ |
| libs/plugins-backend-sdk/src/index.ts | ✅ |
| apps/frontend/src/components/IntroductionStatusChip/index.tsx | ✅ |
| apps/frontend/src/components/emptyState.tsx | ✅ |
| libs/plugins-backend-sdk/src/lib/plugin.interface.ts | ✅ |
| apps/frontend/src/app/unauthorized/use-sso-callback-url.ts | ✅ |
| apps/api/src/analytics/analytics.module.ts | ✅ |
| apps/frontend/index.html | ✅ |
| apps/frontend/src/components/logo/index.tsx | ✅ |
| apps/frontend/src/components/bootScreen/index.tsx | ✅ |
| apps/api/src/users-and-auth/auth/auth.types.ts | ✅ |
| apps/api/src/resources/introductions/resourceIntroductions.module.ts | ✅ |
| apps/api/src/users-and-auth/auth/sso/oidc/exceptions/account-linking-required.exception.ts | ✅ |
| apps/api/src/resources/introducers/resourceIntroducers.module.ts | ✅ |
| apps/api/src/app/app.controller.ts | ✅ |
| apps/api/src/email-template/email-template.module.ts | ✅ |
| apps/api/src/resources/usage/events/resource-usage.events.ts | ✅ |
| apps/frontend/src/components/pwaInstall/index.tsx | ✅ |
| apps/api/src/analytics/analytics.service.ts | ✅ |
| apps/api/src/users-and-auth/users/dtos/createUser.dto.ts | ✅ |
| apps/frontend/src/app/resourceOverview/resourceGroupCard/statusChip/index.tsx | ✅ |
| apps/frontend/src/hooks/useHasValidIntroduction.ts | ✅ |
| apps/frontend/jest.config.ts | ✅ |
| apps/api/src/analytics/analytics.controller.ts | ✅ |
| apps/api/src/resources/iot/webhooks/webhooks.module.ts | ✅ |
| apps/frontend/src/app/resources/IntroductionsManagement/history/index.tsx | ✅ |
| apps/api/src/resources/introductions/isIntroducer.decorator.ts | ✅ |
| apps/frontend/src/app/resource-groups/IntroductionsManagement/history/index.tsx | ✅ |
| apps/api/src/resources/groups/introductions/isIntroducer.decorator.ts | ✅ |
| apps/frontend/src/app/plugins/plugin.state.ts | ✅ |
| apps/api/src/resources/iot/mqtt/mqtt-resource.module.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookSecurityInfo.tsx | ✅ |
| apps/frontend/src/app/resources/iot-settings/mqtt/MqttConfigurationPanel.tsx | ✅ |
| apps/frontend/src/api/index.ts | ✅ |
| libs/plugins-frontend-sdk/src/lib/frontend.pluggable.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookCreateModal.tsx | ✅ |
| apps/frontend/src/app/unauthorized/unauthorized-layout/layout.tsx | ✅ |
| apps/api/src/resources/usage/resourceUsage.module.ts | ✅ |
| apps/api/src/resources/iot/iot.service.ts | ✅ |
| apps/frontend/src/app/resourceOverview/toolbar/filter/index.tsx | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/hooks/useTemplatePreview.ts | ✅ |
| apps/frontend/src/app/resources/usage/components/HistoryHeader/index.tsx | ✅ |
| apps/api/src/users-and-auth/strategies/local.strategy.ts | ✅ |
| apps/api/src/mqtt/mqtt.module.ts | ✅ |
| apps/frontend/src/app/user-management/details/index.tsx | ✅ |
| apps/frontend/src/app/fabreader/FabreaderSelect/FabreaderSelect.tsx | ✅ |
| apps/api/src/fabreader/fabreader.module.ts | ✅ |
| apps/frontend/src/app/fabreader/FabreaderFlashButton/FabreaderFlashButton.tsx | ✅ |
| apps/api/src/email-template/email-template.service.ts | ✅ |
| libs/react-query-client/vite.config.ts | ✅ |
| apps/api/src/resources/introducers/resourceIntroducers.service.ts | ✅ |
| apps/frontend/src/app/resourceOverview/toolbar/scanner/index.tsx | ✅ |
| apps/api/src/resources/groups/resourceGroups.module.ts | ✅ |
| apps/frontend/src/components/PWAUpdatePrompt/installationProgressIndicator/index.tsx | ✅ |
| libs/plugins-frontend-ui/src/lib/components/FabAccessUser/index.tsx | ✅ |
| apps/frontend/src/main.tsx | ✅ |
| apps/api/src/resources/resources.module.ts | ✅ |
| libs/database-entities/src/lib/entities/mqttServer.entity.ts | ✅ |
| apps/frontend/src/components/deleteConfirmationModal/index.tsx | ✅ |
| libs/plugins-frontend-ui/vite.config.ts | ✅ |
| libs/plugins-frontend-sdk/vite.config.ts | ✅ |
| apps/frontend/src/app/resources/usage/components/SessionTimer/index.tsx | ✅ |
| apps/api/src/resources/groups/introducers/resourceGroups.introducers.service.ts | ✅ |
| build.sh | ✅ |
| apps/frontend/src/app/resource-groups/index.tsx | ✅ |
| apps/frontend/src/app/mqtt/MqttServersPage.tsx | ✅ |
| apps/api/src/fabreader/card.controller.ts | ✅ |
| apps/api/src/resources/dtos/createResource.dto.ts | ✅ |
| apps/frontend/src/app/sso/SSOProvidersPage.tsx | ✅ |
| apps/api/src/fabreader/modules/websockets/websocket.types.ts | ✅ |
| libs/plugins-backend-sdk/src/lib/auth-decorator.ts | ✅ |
| apps/api/src/resources/groups/introductions/isIntroducerGuard.ts | ✅ |
| apps/api/src/mqtt/servers/mqtt-server.service.ts | ✅ |
| apps/frontend/src/components/IntroducerManagement/index.tsx | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookList.tsx | ✅ |
| apps/frontend/src/app/resources/usage/resourceUsageHistory.tsx | ✅ |
| apps/api/src/resources/dtos/updateResource.dto.ts | ✅ |
| apps/frontend/src/app/resources/usage/components/IntroductionRequiredDisplay/index.tsx | ✅ |
| apps/frontend/src/app/resources/usage/components/HistoryTable/utils/tableRows.tsx | ✅ |
| apps/api/src/resources/introductions/isIntroducerGuard.ts | ✅ |
| apps/frontend/vite.config.ts | ✅ |
| apps/frontend/src/app/resources/usage/components/SessionNotesModal/index.tsx | ✅ |
| apps/api/src/users-and-auth/auth/auth.controller.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/iotSettings.tsx | ✅ |
| apps/api/src/database/datasource.ts | ✅ |
| apps/frontend/src/app/unauthorized/ssoLogin.tsx | ✅ |
| apps/frontend/src/app/email-templates/EmailTemplatesPage.tsx | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/WebhookConfigurationPanel.tsx | ✅ |
| libs/plugins-frontend-ui/src/lib/components/ResourceSelector/ResourceSelector.tsx | ✅ |
| apps/api/src/resources/introducers/resourceIntroducers.controller.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookAdvancedSettings.tsx | ✅ |
| apps/frontend/src/app/resources/usage/components/UsageNotesModal/index.tsx | ✅ |
| apps/frontend/src/app/resources/details/qrcode/index.tsx | ✅ |
| apps/api/src/email-template/email-template.controller.ts | ✅ |
| apps/frontend/src/app/resourceOverview/index.tsx | ✅ |
| apps/frontend/src/app/unauthorized/ssoLinkingRequiredModal/index.tsx | ✅ |
| apps/api/src/users-and-auth/auth/sso/dto/update-sso-provider.dto.ts | ✅ |
| apps/frontend/src/components/PasswordInput/PasswordInput.tsx | ✅ |
| apps/api/src/resources/introductions/resourceIntroductions.controller.ts | ✅ |
| apps/api/src/users-and-auth/auth/sso/dto/create-sso-provider.dto.ts | ✅ |
| apps/api/src/plugin-system/plugin.controller.ts | ✅ |
| apps/api/src/resources/groups/resourceGroups.service.ts | ✅ |
| apps/frontend/src/app/unauthorized/loginForm.tsx | ✅ |
| apps/api/src/plugin-system/plugin.manifest.ts | ✅ |
| apps/api/src/fabreader/modules/websockets/reader-states/wait-for-resource-selection.state.ts | ✅ |
| apps/api/src/users-and-auth/auth/sso/oidc/oidc.guard.ts | ✅ |
| apps/frontend/src/app/unauthorized/password-reset/passwordResetForm.tsx | ✅ |
| apps/frontend/src/app/resources/IntroducerManagement/index.tsx | ✅ |
| apps/frontend/src/app/dependencies/index.tsx | ✅ |
| apps/frontend/src/app/csv-export/csv-export.tsx | ✅ |
| apps/frontend/src/app/resource-groups/IntroducerManagement/index.tsx | ✅ |
| apps/api/src/users-and-auth/strategies/jwt.strategy.ts | ✅ |
| apps/api/src/resources/groups/introducers/resourceGroups.introducers.controller.ts | ✅ |
| apps/api/src/fabreader/fabreader.service.ts | ✅ |
| apps/frontend/src/components/IntroductionsManagement/history/index.tsx | ✅ |
| apps/api/src/resources/groups/introductions/resourceGroups.introductions.service.ts | ✅ |
| apps/frontend/src/app/resources/usage/components/ResourceUsageSession/index.tsx | ✅ |
| apps/api/src/users-and-auth/auth/sso/sso.service.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookBasicSettings.tsx | ✅ |
| apps/frontend/src/app/plugins/UploadPluginModal.tsx | ✅ |
| apps/api/src/resources/groups/introductions/resourceGroups.introductions.controller.ts | ✅ |
| apps/frontend/src/app/layout/sidebarItems.tsx | ✅ |
| apps/api/src/fabreader/modules/websockets/reader-states/reset-ntag424.state.ts | ✅ |
| apps/api/src/users-and-auth/users-and-auth.module.ts | ✅ |
| apps/frontend/src/app/account-settings/index.tsx | ✅ |
| apps/frontend/src/app/resources/usage/components/HistoryTable/index.tsx | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/components/WebhookFormActions.tsx | ✅ |
| apps/frontend/src/components/PWAUpdatePrompt/index.tsx | ✅ |
| apps/api/src/users-and-auth/auth/sso/oidc/oidc.strategy.ts | ✅ |
| apps/api/src/email/email.service.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/webhooks/types.ts | ✅ |
| apps/frontend/src/app/user-management/details/components/permissionsForm/index.tsx | ✅ |
| apps/frontend/src/app/resourceOverview/toolbar/toolbar.tsx | ✅ |
| libs/plugins-frontend-ui/src/lib/components/user-search/UserSearch.tsx | ✅ |
| apps/frontend/src/app/user-management/details/components/emailForm/index.tsx | ✅ |
| apps/frontend/src/app/resources/details/useQrCodeAction.ts | ✅ |
| apps/frontend/src/app/fabreader/FabreaderList/FabreaderList.tsx | ✅ |
| apps/frontend/src/app/confirm-email-change/index.tsx | ✅ |
| apps/frontend/src/app/fabreader/FabreaderEditor/FabreaderEditor.tsx | ✅ |
| apps/frontend/src/app/user-management/index.tsx | ✅ |
| apps/frontend/src/app/resources/usage/components/StartSessionControls/index.tsx | ✅ |
| apps/frontend/src/app/resources/usage/components/ActiveSessionDisplay/index.tsx | ✅ |
| apps/api/src/resources/sse/sse.controller.ts | ✅ |
| apps/frontend/src/app/resources/iot-settings/mqtt/pages/TestMqttConfig.tsx | ✅ |
| apps/api/src/fabreader/reader.controller.ts | ✅ |
| apps/api/src/resources/groups/resourceGroups.controller.ts | ✅ |
| apps/frontend/src/app/reset-password/resetPassword.tsx | ✅ |
| apps/frontend/src/app/mqtt/servers/MqttServerList.tsx | ✅ |
| apps/frontend/src/app/app.tsx | ✅ |
Explore our documentation to understand the languages and file types we support and the files we ignore.
Check out our docs on how you can make Korbit work best for you and your team.
| const fabaccessDbFile = resolve(join(storageEnv.STORAGE_ROOT, 'attraccess.sqlite')); | ||
| const attraccessDbFile = resolve(join(storageEnv.STORAGE_ROOT, 'attraccess.sqlite')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Redundant Database File Paths 
Tell me more
What is the issue?
Both fabaccessDbFile and attraccessDbFile are pointing to the same file path, making the existence check redundant.
Why this matters
This redundancy means the fallback mechanism will never work as intended since both variables reference the same file.
Suggested change ∙ Feature Preview
Use different filenames for the old and new database paths:
const fabaccessDbFile = resolve(join(storageEnv.STORAGE_ROOT, 'fabaccess.sqlite'));
const attraccessDbFile = resolve(join(storageEnv.STORAGE_ROOT, 'attraccess.sqlite'));Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
| export * from './lib/auth-decorator'; | ||
| export * from '@attraccess/database-entities'; | ||
| export * as entities from '@attraccess/database-entities'; | ||
| export * from '@fabaccess/database-entities'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Over-exposed External Module 
Tell me more
What is the issue?
Using wildcard exports (*) from an external module breaks encapsulation and creates tight coupling.
Why this matters
Re-exporting everything from an external module makes the public API unstable and harder to maintain, as any changes in the external module automatically affect this module's API. This violates the Interface Segregation Principle.
Suggested change ∙ Feature Preview
Explicitly export only the needed types and functions:
export { Type1, Type2, function1 } from '@fabaccess/database-entities';Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
| @@ -1,4 +1,4 @@ | |||
| export * from './attraccess-user/AttraccessUser'; | |||
| export * from './FabAccessUser'; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent Component Directory Structure 
Tell me more
What is the issue?
Inconsistent directory structure pattern where FabAccessUser is in the root directory while other components are in their own subdirectories.
Why this matters
Breaking the established directory structure pattern makes the codebase less maintainable and harder to navigate. It also violates the principle of consistency in project organization.
Suggested change ∙ Feature Preview
Move the FabAccessUser component to its own directory to maintain consistency with other components:
export * from './fab-access-user/FabAccessUser';Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
| > | ||
| <Image src="/logo.png" alt="Attraccess" height={32} /> | ||
| <span className="text-xl">Attraccess</span> | ||
| <Image src="/logo.png" alt="FabAccess" height={32} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Magic number in component 
Tell me more
What is the issue?
Magic number used for image height makes the code less readable and the intent less clear.
Why this matters
Without context through a named constant, it's unclear why this specific height was chosen or how it relates to the design system.
Suggested change ∙ Feature Preview
const LOGO_HEIGHT = 32;
// Then use it in the component
<Image src="/logo.png" alt="FabAccess" height={LOGO_HEIGHT} />Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
| '\\.css$': 'identity-obj-proxy', | ||
| }, | ||
| transformIgnorePatterns: ['node_modules/(?!(@attraccess)/)'], | ||
| transformIgnorePatterns: ['node_modules/(?!(@fabaccess)/)'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unexplained Complex Regex Pattern 
Tell me more
What is the issue?
The regex pattern in transformIgnorePatterns is complex and lacks explanation about its purpose.
Why this matters
Without understanding the regex pattern's purpose, future developers may hesitate to modify it or misunderstand which node modules are being excluded from transformation.
Suggested change ∙ Feature Preview
Add a comment explaining the pattern's purpose:
// Exclude all node_modules from transformation except @fabaccess packages
transformIgnorePatterns: ['node_modules/(?!(@fabaccess)/)'],Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
| import { LoadedPluginManifest } from '@fabaccess/react-query-client'; | ||
| import { create } from 'zustand'; | ||
|
|
||
| export interface PluginManifestWithPlugin extends LoadedPluginManifest { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing interface purpose documentation 
Tell me more
What is the issue?
The interface lacks documentation explaining why this extension of LoadedPluginManifest is needed and what it provides.
Why this matters
Without understanding the purpose of this extension, future maintainers might struggle to understand when to use PluginManifestWithPlugin vs LoadedPluginManifest.
Suggested change ∙ Feature Preview
/**
* Extends LoadedPluginManifest to include the instantiated plugin instance,
* enabling direct access to plugin functionality.
*/
export interface PluginManifestWithPlugin extends LoadedPluginManifest {Provide feedback to improve future suggestions
💬 Looking for more details? Reply to this comment to chat with Korbit.
Description by Korbit AI
What change is being made?
Rename all instances of the term "attraccess" to "fabaccess" across the codebase, documentation, and configuration files.
Why are these changes being made?
The changes are being made to update the project branding from "Attraccess" to "FabAccess" to reflect a new naming convention and improve the project's alignment with its core focus on assisting makerspaces and FabLabs. This change aims to unify the project name in both internal references and public documentation, enhancing consistency and clarity for users and developers.