A free open source IT asset/license management system
This report summarizes scanner evidence for grokability/snipe-it, a PHP project with 15,134 GitHub stars. SynthScan examined 855,108 lines of code across 8746 source files, recording 848 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 688 finding(s).
Are imports declared and package/API names verified? 138 finding(s).
Are wrappers, guards, and repeated structures necessary? 441 finding(s).
Which changes need focused human review? 848 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 848 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | database/factories/CategoryFactory.php | 104 | public function accessoryKeyboardCategory() | CODE |
| LOW | database/factories/CheckoutAcceptanceFactory.php | 118 | private function createdAssociatedActionLogEntry(CheckoutAcceptance $acceptance): void | CODE |
| LOW | database/factories/UserFactory.php | 316 | public function viewEncryptedCustomFields() | CODE |
| LOW | app/Importer/LocationImporter.php | 95 | public function createLocationIfNotExists(array $row) | CODE |
| LOW | app/Importer/Importer.php | 232 | private static function readSampleForEncodingProbe(string $path): ?string | CODE |
| LOW | app/Importer/Importer.php | 330 | private static function conversionExceedsLossThreshold(string $source, string $converted, string $encoding): bool | CODE |
| LOW | app/Importer/LicenseImporter.php | 218 | protected function assignSeatIfCheckoutTargetSet(License $license, string $asset_tag): void | CODE |
| LOW | app/Importer/CategoryImporter.php | 67 | public function createCategoryIfNotExists(array $row) | CODE |
| LOW | app/Importer/ComponentImporter.php | 103 | public function createComponentIfNotExists($row = null) | CODE |
| LOW | app/Importer/ItemImporter.php | 337 | protected function recordOrderForImportedRow($model, array $row): void | CODE |
| LOW | app/Importer/ItemImporter.php | 695 | public function createOrFetchManufacturer($item_manufacturer) | CODE |
| LOW | app/Importer/AssetModelImporter.php | 77 | public function createAssetModelIfNotExists(array $row) | CODE |
| LOW | app/Importer/AssetModelImporter.php | 189 | public function createOrFetchCustomFieldset($fieldset_name): ?int | CODE |
| LOW | app/Importer/SupplierImporter.php | 64 | public function createSupplierIfNotExists(array $row) | CODE |
| LOW | app/Importer/AssetHistoryImporter.php | 62 | public function setMatchFirstnameLastname(bool $flag): self | CODE |
| LOW | app/Importer/AccessoryImporter.php | 102 | public function createAccessoryIfNotExists($row) | CODE |
| LOW | app/Importer/ManufacturerImporter.php | 58 | public function createManufacturerIfNotExists(array $row) | CODE |
| LOW | app/Importer/ConsumableImporter.php | 105 | public function createConsumableIfNotExists($row) | CODE |
| LOW | app/Traits/LocksLongRunningOperation.php | 61 | protected function operationAlreadyRunningMessage(string $operationLabelKey): string | CODE |
| LOW | app/Mail/BulkAssetCheckoutMail.php | 112 | private function getRequiresAcceptanceInfo(): ?string | CODE |
| LOW | app/Mail/BulkAssetCheckoutMail.php | 121 | private function getRequiresAcceptancePrompt(): ?string | CODE |
| LOW | app/Providers/TelescopeServiceProvider.php | 36 | protected function hideSensitiveRequestDetails(): void | CODE |
| LOW | app/Models/Maintenance.php | 209 | public function setExpectedCompletionDateAttribute($value) | CODE |
| LOW | app/Models/Maintenance.php | 225 | public function setCompletionDateAttribute($value) | CODE |
| LOW | app/Models/Maintenance.php | 230 | public function getCompletionDateAttribute() | CODE |
| LOW | app/Models/User.php | 306 | private function revokeAssociatedPassportTokens(): void | CODE |
| LOW | app/Models/User.php | 328 | private function purgeAssociatedPassportTokens(): void | CODE |
| LOW | app/Models/User.php | 405 | public function getEffectivePermissionsBySection(): array | CODE |
| LOW | app/Models/User.php | 490 | private function buildPermissionSourceLabel(string $status, string $source, array $sourceGroups = []): string | CODE |
| LOW | app/Models/User.php | 1025 | public function syncCompaniesPreservingInvisibleTo(?User $editor, array $submittedCompanyIds): void | CODE |
| LOW | app/Models/User.php | 1105 | public function syncLegacyCompanyIdMirror(): void | CODE |
| LOW | app/Models/User.php | 1500 | public function getAssignedItemsWithPendingAcceptance(): Collection | CODE |
| LOW | app/Models/User.php | 1606 | public static function generateEmailFromFullName($name) | CODE |
| LOW | app/Models/User.php | 1613 | public static function generateFormattedNameFromFullName($users_name, $format = 'filastname') | CODE |
| LOW | app/Models/User.php | 1915 | public function getAllSubordinatesIncludingSelf() | CODE |
| LOW | app/Models/User.php | 1926 | protected function fetchSubordinatesRecursive(User $manager, Collection &$subs) | CODE |
| LOW | app/Models/AssetModel.php | 207 | protected function hasStockForBulkFulfillment(): bool | CODE |
| LOW | app/Models/Actionlog.php | 200 | protected static function resolveCompanyIdFromAttributes( | CODE |
| LOW | app/Models/Actionlog.php | 222 | protected static function resolveCompanyIdFromModelClass(?string $modelClass, ?int $id): ?int | CODE |
| LOW | app/Models/Ldap.php | 470 | public static function parseAndMapLdapAttributes($ldapattributes) | CODE |
| LOW | app/Models/Ldap.php | 502 | public static function applyLdapAttributesToUser(User $user, array $ldapAttr): void | CODE |
| LOW | app/Models/Company.php | 376 | public static function isFullMultipleCompanySupportEnabled() | CODE |
| LOW | app/Models/Company.php | 714 | private static function scopeCompanyablesDirectly($query, $column = 'company_id', $table_name = null) | CODE |
| LOW | app/Models/License.php | 384 | public function setExpirationDateAttribute($value) | CODE |
| LOW | app/Models/License.php | 403 | public function setTerminationDateAttribute($value) | CODE |
| LOW | app/Models/License.php | 451 | public function getFreeSeatCountAttribute() | CODE |
| LOW | app/Models/License.php | 650 | public function getLicenseSeatsCountAttribute() | CODE |
| LOW | app/Models/License.php | 731 | public function getAvailSeatsCountAttribute() | CODE |
| LOW | app/Models/License.php | 768 | public function getAssignedSeatsCountAttribute() | CODE |
| LOW | app/Models/License.php | 906 | public function scopeTextSearchWithoutSerial($query, $search) | CODE |
| LOW | app/Models/SnipeModel.php | 107 | public function setDepreciationIdAttribute($value) | CODE |
| LOW | app/Models/SnipeModel.php | 115 | public function setManufacturerIdAttribute($value) | CODE |
| LOW | app/Models/SnipeModel.php | 155 | public function setWarrantyMonthsAttribute($value) | CODE |
| LOW | app/Models/SnipeModel.php | 163 | public function setRtdLocationIdAttribute($value) | CODE |
| LOW | app/Models/SnipeModel.php | 208 | public function scopeApplyOffsetAndLimit(Builder $query, int $total) | CODE |
| LOW | app/Models/SnipeSCIMConfig.php | 548 | private function logGroupMembershipChangesForIds(Model $object, array $attachedIds, array $detachedIds): void | CODE |
| LOW | app/Models/CheckoutAcceptance.php | 43 | public function getCheckoutableItemTypeAttribute(): string | CODE |
| LOW | app/Models/CheckoutAcceptance.php | 67 | public function isAccessibleToCurrentUser(): bool | CODE |
| LOW | app/Models/CustomField.php | 177 | public static function allowedElementKeysForFormat(?string $formatLabel): array | CODE |
| LOW | app/Models/CustomField.php | 226 | public static function elementRequiresFieldValues(?string $element): bool | CODE |
| 359 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | snipeit.sh | 1 | #!/bin/bash | COMMENT |
| LOW | snipeit.sh | 21 | # * verify support for Ubuntu 24.04 -> 25.04 # | COMMENT |
| LOW | snipeit.sh | 321 | log "mv /etc/apache2/sites-enabled/snipeit.conf /etc/apache2/sites-enabled/000-snipeit.conf" | COMMENT |
| LOW | database/seeders/SettingsSeeder.php | 21 | $settings->alert_email = 'service@snipe-it.io'; | COMMENT |
| LOW | database/factories/MaintenanceFactory.php | 61 | * @return array | COMMENT |
| LOW | docker/startup.sh | 141 | # HTTP_-prefixed server variable names in login_remote_user_header_name | COMMENT |
| LOW | app/Importer/Importer.php | 181 | public function __construct($file) | COMMENT |
| LOW | app/Importer/ItemImporter.php | 141 | return; | COMMENT |
| LOW | app/Importer/ItemImporter.php | 161 | // "Location" on every row; when checkout_class was missing the code | COMMENT |
| LOW | app/Importer/AssetImporter.php | 41 | // parent unconditionally assigns $this->item entries for every | COMMENT |
| LOW | app/Importer/AssetHistoryImporter.php | 201 | COMMENT | |
| LOW | app/Providers/AuthServiceProvider.php | 201 | } | COMMENT |
| LOW | app/Providers/AuthServiceProvider.php | 221 | || $user->can('checkout', Consumable::class) | COMMENT |
| LOW | app/Providers/AuthServiceProvider.php | 321 | || $user->can('view', Depreciation::class); | COMMENT |
| LOW | app/Providers/ValidationServiceProvider.php | 261 | } | COMMENT |
| LOW | app/Providers/ValidationServiceProvider.php | 321 | return true; | COMMENT |
| LOW | app/Providers/ValidationServiceProvider.php | 621 | // of their own view by the strict-mode scope. See #19192. Passes | COMMENT |
| LOW | app/Providers/ValidationServiceProvider.php | 681 | // No company context available (e.g. model-level validation before companies are | COMMENT |
| LOW | app/Models/User.php | 1041 | return; | COMMENT |
| LOW | app/Models/AssetModel.php | 241 | COMMENT | |
| LOW | app/Models/Company.php | 761 | // documented at https://snipe-it.readme.io/docs/multi-tenancy-ish | COMMENT |
| LOW | app/Models/Company.php | 801 | if ($floater) { | COMMENT |
| LOW | app/Models/Component.php | 421 | // than this asset and full multiple company support is on we'll remove the global scope, | COMMENT |
| LOW | app/Models/SnipeSCIMConfig.php | 221 | if (! $attribute->isDirty()) { | COMMENT |
| LOW | app/Models/SnipeSCIMConfig.php | 321 | // not the full member list. Using sync() would wipe all other members on every user update. | COMMENT |
| LOW | app/Models/SnipeSCIMConfig.php | 361 | // (since $parent->getKey() is null) and blow up with a MySQL 23000 integrity | COMMENT |
| LOW | app/Models/SnipeSCIMConfig.php | 401 | // not the whole membership, so a PATCH against a group with | COMMENT |
| LOW | app/Models/SnipeSCIMConfig.php | 601 | $object->{$this->relationship_id_field} = $value ? $this->relationship_class::firstOrCreate([$this->relationship | COMMENT |
| LOW | app/Models/CheckoutAcceptance.php | 321 | // runs parseEscapedMarkedown + strips img tags before returning). | COMMENT |
| LOW | app/Models/CustomField.php | 361 | } | COMMENT |
| LOW | app/Models/Setting.php | 261 | return ''; | COMMENT |
| LOW | app/Models/Setting.php | 281 | // context that treats < as an HTML boundary. The old encode-then- | COMMENT |
| LOW | app/Models/Setting.php | 301 | // a browser. Strip comments here first so the at-rule and url() | COMMENT |
| LOW | app/Models/Asset.php | 1681 | // date, a warranty expiration). The mixed cast metadata on | COMMENT |
| LOW | app/Models/Traits/Searchable.php | 61 | COMMENT | |
| LOW | app/Models/Traits/Searchable.php | 1241 | /** | COMMENT |
| LOW | app/Models/Traits/AdjustsQuantity.php | 101 | // concurrent adjusters serialize. Read + floor-check + | COMMENT |
| LOW | app/Models/Traits/HasCalendarEvents.php | 261 | // The observers that call into this method dispatch it through | COMMENT |
| LOW | app/SyncAdapters/MappingTargets.php | 141 | // asset_tag, model, model_number, notes, order_number. | COMMENT |
| LOW | app/SyncAdapters/HostInventoryRecord.php | 41 | // Vendor's group identifier (Fleet Team id, Jamf Site id, | COMMENT |
| LOW | app/SyncAdapters/SyncsHostFromRecord.php | 61 | throw new RuntimeException('Failed to save asset during heartbeat-only sync.'); | COMMENT |
| LOW | app/SyncAdapters/SyncsHostFromRecord.php | 141 | // Migration path for customers moving from a homegrown | COMMENT |
| LOW | app/SyncAdapters/SyncsHostFromRecord.php | 641 | $asset->asset_tag = self::resolveAssetTag($record, $instance); | COMMENT |
| LOW | …s/AppleBusinessManager/AppleBusinessManagerAdapter.php | 1081 | // hardware_marketing_name for cross-adapter | COMMENT |
| LOW | app/SyncAdapters/Intune/IntuneAdapter.php | 361 | 'intune_ownership' => Arr::get($device, 'managedDeviceOwnerType'), | COMMENT |
| LOW | app/Presenters/UserPresenter.php | 521 | // return 'roieuoe'.html_entity_decode($this->first_name.' '.$this->last_name, ENT_QUOTES | ENT_XML1, 'UTF-8' | COMMENT |
| LOW | app/Presenters/CheckoutRequestPresenter.php | 101 | // (on-hand) column. | COMMENT |
| LOW | app/Livewire/NeedsAttention.php | 81 | // snapshot and hydrate the widget even though the parent view | COMMENT |
| LOW | app/Livewire/CheckoutTargetPanel.php | 121 | COMMENT | |
| LOW | app/Livewire/Importer.php | 61 | COMMENT | |
| LOW | app/Livewire/Importer.php | 161 | // stay hardcoded in requiredForType() below. | COMMENT |
| LOW | app/Livewire/Importer.php | 181 | // the license's total capacity count (not a per-seat pivot id). | COMMENT |
| LOW | app/Livewire/Importer.php | 301 | COMMENT | |
| LOW | app/Livewire/Importer.php | 961 | { | COMMENT |
| LOW | app/Livewire/Importer.php | 1141 | $ruleString = is_array($rule) ? implode('|', $rule) : (string) $rule; | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 41 | // Note: there is no uniform response-time floor. An earlier iteration | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 61 | // Flipped true by any updated() hook and back to false on successful | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 81 | // Read-only lock. Set from config('app.lock_passwords') in mount() | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 1601 | 'ldap_active_flag', | COMMENT |
| LOW | app/Http/Middleware/CheckUserIsActivated.php | 61 | // "known token, disabled account" case from an unknown | COMMENT |
| 134 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/Models/User.php | 1782 | * Both column orders are tried so a user named "John Doe" matches | COMMENT |
| LOW | app/Models/User.php | 1783 | * both "John Doe" and "Doe John" regardless of the install's | COMMENT |
| LOW⚡ | …yncAdapters/GoogleWorkspace/GoogleWorkspaceAdapter.php | 71 | 'placeholder' => 'snipeit-sync@your-project.iam.gserviceaccount.com', | CODE |
| LOW⚡ | …yncAdapters/GoogleWorkspace/GoogleWorkspaceAdapter.php | 79 | 'placeholder' => "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", | CODE |
| LOW⚡ | …yncAdapters/GoogleWorkspace/GoogleWorkspaceAdapter.php | 85 | 'placeholder' => 'admin@your-domain.com', | CODE |
| LOW | …s/AppleBusinessManager/AppleBusinessManagerAdapter.php | 133 | 'placeholder' => "-----BEGIN PRIVATE KEY-----\n1234567890\n-----END PRIVATE KEY-----", | CODE |
| LOW | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 147 | 'placeholder' => 'X-API-Key', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 165 | 'placeholder' => '/api/v1/devices', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 174 | 'placeholder' => 'data.devices', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 182 | 'placeholder' => 'id', | CODE |
| LOW | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 204 | 'placeholder' => '/api/v1/devices/{external_id}', | CODE |
| LOW | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 213 | 'placeholder' => 'notes', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 230 | 'placeholder' => '500', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 239 | 'placeholder' => 'limit', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 248 | 'placeholder' => 'offset', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 257 | 'placeholder' => 'page', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 266 | 'placeholder' => '1', | CODE |
| LOW⚡ | app/SyncAdapters/CustomHttp/CustomHttpAdapter.php | 275 | 'placeholder' => 'links.next', | CODE |
| LOW⚡ | app/Livewire/IntegrationSettingsForm.php | 94 | 'placeholder' => 'https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXX', | CODE |
| LOW⚡ | app/Livewire/IntegrationSettingsForm.php | 100 | 'placeholder' => trans('general.url'), | CODE |
| LOW⚡ | app/Livewire/IntegrationSettingsForm.php | 106 | 'placeholder' => 'https://chat.googleapis.com/v1/spaces/xxxxxxxx/messages?key=xxxxxx', | CODE |
| LOW⚡ | app/Livewire/IntegrationSettingsForm.php | 112 | 'placeholder' => 'https://abcd.webhook.office.com/webhookb2/XXXXXXX', | CODE |
| LOW | app/Livewire/IntegrationSettingsForm.php | 145 | $this->webhook_placeholder = $this->webhook_text[$this->webhook_selected]['placeholder']; | CODE |
| LOW | …sources/views/blade/sync-adapter/credentials.blade.php | 226 | :placeholder="$field['placeholder'] ?? null" | CODE |
| LOW | …sources/views/blade/sync-adapter/credentials.blade.php | 254 | :placeholder="$field['placeholder'] ?? null" | CODE |
| LOW | resources/views/blade/form/field.blade.php | 18 | 'placeholder' => null, | CODE |
| LOW | resources/views/blade/form/row.blade.php | 20 | 'placeholder' => null, | CODE |
| LOW | resources/views/blade/input/datetimepicker.blade.php | 5 | 'placeholder' => trans('general.select_datetime'), | CODE |
| LOW | resources/views/blade/input/datepicker.blade.php | 6 | 'placeholder' => trans('general.select_date'), | CODE |
| LOW | resources/views/blade/input/password.blade.php | 6 | 'placeholder' => null, | CODE |
| LOW | resources/views/blade/input/colorpicker.blade.php | 6 | 'placeholder' => '#FF0000', | CODE |
| LOW | resources/views/blade/input/date-range.blade.php | 8 | 'placeholder' => trans('general.select_date'), | CODE |
| LOW | …sources/views/blade/input/select2-checkboxes.blade.php | 36 | 'placeholder' => '', | CODE |
| LOW | resources/views/livewire/ldap-settings.blade.php | 523 | placeholder="{{ trans('general.example').($is_ad ? 'admin@example.com' : 'cn=admin,dc=ex | CODE |
| LOW | resources/assets/js/snipeit.js | 749 | var placeholder = link.data('placeholder') || ''; | CODE |
| LOW | resources/assets/js/snipeit.js | 1041 | $search.attr('placeholder', $search.attr('placeholder') || link.data('search-placeholder') || 'Search'); | CODE |
| LOW | tests/Unit/LdapCreateUserFromLdapTest.php | 41 | 'telephonenumber' => ['555-0100'], | CODE |
| LOW | tests/Unit/LdapCreateUserFromLdapTest.php | 42 | 'mobile' => ['555-0200'], | CODE |
| LOW | tests/Unit/LdapCreateUserFromLdapTest.php | 90 | $this->assertSame('555-0100', $user->phone); | CODE |
| LOW | tests/Unit/LdapCreateUserFromLdapTest.php | 91 | $this->assertSame('555-0200', $user->mobile); | CODE |
| LOW | tests/Support/Settings.php | 22 | public function enableAlertEmail(string $email = 'notifications@example.org'): Settings | CODE |
| LOW | tests/Support/Settings.php | 59 | public function enableAdminCC(string $email = 'cc@example.org'): Settings | CODE |
| LOW | tests/Feature/Reporting/ActivityReportTest.php | 282 | // "John Doe", so a user named John Doe orders alphabetically by | COMMENT |
| LOW | tests/Feature/Reporting/ActivityReportTest.php | 326 | // Without the last_first flip, the user would sort as "John Doe" | COMMENT |
| LOW | tests/Feature/Auth/GoogleLoginTest.php | 23 | 'username' => 'me@example.org', | CODE |
| LOW | tests/Feature/Auth/GoogleLoginTest.php | 28 | $socialUser->shouldReceive('getEmail')->andReturn('me@example.org'); | CODE |
| LOW | tests/Feature/Auth/GoogleLoginTest.php | 51 | $user = User::factory()->create(['username' => 'me@example.org']); | CODE |
| LOW | tests/Feature/Auth/GoogleLoginTest.php | 57 | $socialUser->shouldReceive('getEmail')->andReturn('me@example.org'); | CODE |
| LOW | tests/Feature/SyncAdapters/GroupCompanyMappingTest.php | 178 | 'fleet_token' => 'fake-token', | CODE |
| LOW | tests/Feature/SyncAdapters/GroupCompanyMappingTest.php | 199 | 'fleet_token' => 'fake-token', | CODE |
| LOW | tests/Feature/SyncAdapters/GroupCompanyMappingTest.php | 216 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/ComposedNotesForPushTest.php | 207 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/SyncAdapterMutexTest.php | 40 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/SilentSaveFailureTest.php | 115 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | …ncAdapters/MultiAdapterExternalSourceIsolationTest.php | 92 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/ExtraFieldMappingTest.php | 551 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/UserAssignmentTest.php | 212 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | …Feature/SyncAdapters/CreateSnipeitAssetsOnPullTest.php | 102 | SyncAdapterConfig::put($instance->id, 'token', Crypt::encrypt('fake-token')); | CODE |
| LOW | tests/Feature/SyncAdapters/AssetTagPatternTest.php | 221 | 'fleet_token' => 'fake-token', | CODE |
| LOW | tests/Feature/SyncAdapters/AssetTagPatternTest.php | 246 | 'fleet_token' => 'fake-token', | CODE |
| 78 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | TESTING.md | 15 | # -------------------------------------------- | COMMENT |
| MEDIUM⚡ | TESTING.md | 17 | # -------------------------------------------- | COMMENT |
| MEDIUM⚡ | TESTING.md | 25 | # -------------------------------------------- | COMMENT |
| MEDIUM⚡ | TESTING.md | 27 | # -------------------------------------------- | COMMENT |
| MEDIUM | …eature/Migrations/CleanStalePendingAcceptancesTest.php | 338 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …eature/Migrations/CleanStalePendingAcceptancesTest.php | 341 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ure/Migrations/InventoryQtyReconcileAndRestoreTest.php | 107 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ure/Migrations/InventoryQtyReconcileAndRestoreTest.php | 109 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ure/Migrations/InventoryQtyReconcileAndRestoreTest.php | 144 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ure/Migrations/InventoryQtyReconcileAndRestoreTest.php | 146 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 58 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 60 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 165 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 167 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 259 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 261 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 307 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 309 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 386 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …Acceptances/PendingAcceptanceQuantityOnCheckinTest.php | 388 | // ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/Feature/ActionLogs/ActionlogCompanyIdBackfillTest.php | 77 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/Livewire/LdapSettings.php | 263 | // Step 1: requires an LDAP server URL. Without it the | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 269 | // Step 2: requires base DN. Bind credentials themselves can be | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 275 | // Step 3: requires the two always-required mapping fields. | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1573 | // Step 1: Connection | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1577 | // Step 2: Authenticate + Scope | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1583 | // Step 3: Attribute Mapping | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 99 | // Step 1: Connection | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 116 | // Step 2: Bind credentials | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 131 | // Step 3: Attribute mapping. LDAP attribute names Snipe-IT reads | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 172 | // Step 4: Sync + defaults | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 1602 | // Step 4: Sync + Defaults | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 53 | // Step 1: Dry run? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 61 | // Step 2: Who are you? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 218 | // Step 7: Clear related action_logs? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 225 | // Step 8: Delete associated files? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 235 | // Step 9: Delete the companies themselves? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 249 | // Step 10: Backup first? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 256 | // Step 11: Summary + final confirmation | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 89 | // Step 3: Which companies? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 149 | // Step 4: Which item types? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 195 | // Step 5: Hard delete, soft delete, or no delete? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 206 | // Step 6: Send checkin notifications? (not applicable to users or consumables) | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 317 | // Step 11: Execute with progress bar | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 59 | // Step 1: dry run confirm | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 61 | // Step 2: search() — ask() for the search term, then choice() to pick from results | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 65 | // Step 3: multisearch for companies — ask() for search term, then multiselectFallback() | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 68 | // Step 4: multiselect for item types | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 70 | // Step 5: select for delete mode | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 73 | // Step 6: notification confirm only shown for checkiable types | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 81 | // Step 8: file deletion prompt — only shown when deleteType !== 'none' | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 86 | // Step 9: company deletion — only shown when real companies (not just __null__) were selected | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/Livewire/LdapSettings.php | 263 | // Step 1: requires an LDAP server URL. Without it the | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 269 | // Step 2: requires base DN. Bind credentials themselves can be | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 275 | // Step 3: requires the two always-required mapping fields. | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1573 | // Step 1: Connection | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1577 | // Step 2: Authenticate + Scope | COMMENT |
| LOW⚡ | app/Livewire/LdapSettings.php | 1583 | // Step 3: Attribute Mapping | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 99 | // Step 1: Connection | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 116 | // Step 2: Bind credentials | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 131 | // Step 3: Attribute mapping. LDAP attribute names Snipe-IT reads | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 172 | // Step 4: Sync + defaults | COMMENT |
| LOW | app/Livewire/LdapSettings.php | 1602 | // Step 4: Sync + Defaults | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 53 | // Step 1: Dry run? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 61 | // Step 2: Who are you? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 218 | // Step 7: Clear related action_logs? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 225 | // Step 8: Delete associated files? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 235 | // Step 9: Delete the companies themselves? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 249 | // Step 10: Backup first? | COMMENT |
| LOW⚡ | app/Console/Commands/BulkDelete.php | 256 | // Step 11: Summary + final confirmation | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 89 | // Step 3: Which companies? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 149 | // Step 4: Which item types? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 195 | // Step 5: Hard delete, soft delete, or no delete? | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 206 | // Step 6: Send checkin notifications? (not applicable to users or consumables) | COMMENT |
| LOW | app/Console/Commands/BulkDelete.php | 317 | // Step 11: Execute with progress bar | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 59 | // Step 1: dry run confirm | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 61 | // Step 2: search() — ask() for the search term, then choice() to pick from results | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 65 | // Step 3: multisearch for companies — ask() for search term, then multiselectFallback() | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 68 | // Step 4: multiselect for item types | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 70 | // Step 5: select for delete mode | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 73 | // Step 6: notification confirm only shown for checkiable types | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 81 | // Step 8: file deletion prompt — only shown when deleteType !== 'none' | COMMENT |
| LOW⚡ | tests/Feature/Console/BulkDeleteTest.php | 86 | // Step 9: company deletion — only shown when real companies (not just __null__) were selected | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | resources/assets/less/bootstrap-less/variables.less | 278 | //## Define the breakpoints at which your layout will change, adapting to different screen sizes. | COMMENT |
| MEDIUM | resources/assets/less/bootstrap-less/variables.less | 332 | //## Define the maximum width of `.container` for different screen sizes. | COMMENT |
| MEDIUM | ansible/freebsd/vagrant_playbook.yml | 74 | # Create a php.ini file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | snipeit.sh | 15 | # Feel free to modify, but please give # | COMMENT |
| MEDIUM | config/telescope.php | 130 | | a request or task is executed. Feel free to customize this list. | CODE |
| LOW | resources/views/setup/index.blade.php | 163 | Awesomesauce. Debug is either turned off, or you're running this in a non-production environment. (Don't forge | CODE |
| LOW | resources/views/setup/done.blade.php | 61 | Don't forget to join our communities! You can find us on: | CODE |
| LOW | tests/Feature/Settings/ShowSetUpPageTest.php | 95 | $successMessage = "Awesomesauce. Debug is either turned off, or you're running this in a non-production environm | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | resources/views/partials/bootstrap-table.blade.php | 5008 | // plus a setTimeout fallback for the same tick, so we're robust | COMMENT |
| MEDIUM | resources/assets/js/dragtable.js | 73 | axis: 'x', // @see http://api.jqueryui.com/sortable/#option-axis, Only vertical moving is | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | snipeit.sh | 303 | #Check if SELinux is enforcing | COMMENT |
| LOW | docker/startup.sh | 152 | # Set REMOTE_LOGIN_FORWARDED_HEADER to the inbound header name your | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/Models/Traits/Searchable.php | 353 | // for exact matches we rewrite only the operator and keep the same SQL scaffold. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | upgrade.php | 34 | print("Error was: " . curl_error($ch) . "\n"); | CODE |