<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: luksiko</title>
    <description>The latest articles on DEV Community by luksiko (@luksiko).</description>
    <link>https://dev.to/luksiko</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4213474%2F3f660e41-0216-4239-a4b0-5eecaf5c2df5.jpg</url>
      <title>DEV Community: luksiko</title>
      <link>https://dev.to/luksiko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/luksiko"/>
    <language>en</language>
    <item>
      <title>Building CheckWarranty.info: Solving Multi-Brand Hardware Audits &amp; As-Built BOM Decoding at Scale</title>
      <dc:creator>luksiko</dc:creator>
      <pubDate>Wed, 28 Oct 2026 18:53:44 +0000</pubDate>
      <link>https://dev.to/luksiko/building-checkwarrantyinfo-solving-multi-brand-hardware-audits-as-built-bom-decoding-at-scale-3fd1</link>
      <guid>https://dev.to/luksiko/building-checkwarrantyinfo-solving-multi-brand-hardware-audits-as-built-bom-decoding-at-scale-3fd1</guid>
      <description>&lt;p&gt;Enterprise IT asset management (ITAM), hardware disposition (ITAD) facilities, and refurbished device resellers share a persistent, high-friction operational problem: &lt;strong&gt;verifying hardware warranty coverage and factory component specifications (CPU, RAM, SSD) at scale.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether managing 500 employee laptops or processing a shipment of 3,000 off-lease Dell, Lenovo, HP, and Apple computers, teams historically had to rely on fragmented manufacturer websites, manual BIOS booting, and brittle internal web scrapers.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;&lt;a href="https://checkwarranty.info" rel="noopener noreferrer"&gt;CheckWarranty.info&lt;/a&gt;&lt;/strong&gt; to solve this problem once and for all. Here is how the architecture works, the challenges we solved, and why IT teams use our platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Why Vendor Portals &amp;amp; In-House Scrapers Fail
&lt;/h2&gt;

&lt;p&gt;When companies attempt to automate warranty checks internally, they inevitably face four massive roadblocks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise WAFs &amp;amp; Bot Mitigation:&lt;/strong&gt;
OEM support portals (Dell Support, Lenovo eSupport, HP Customer Care) are heavily protected behind Akamai Bot Manager, Cloudflare Turnstile, and PerimeterX. Headless browsers and residential proxies get rate-limited or blocked within minutes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brand Silos &amp;amp; Divergent Schemas:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dell:&lt;/strong&gt; Requires a 7-character alphanumeric Service Tag or Express Service Code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lenovo:&lt;/strong&gt; Requires an 8-character serial number and Machine Type Model (MTM).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HP:&lt;/strong&gt; Demands both a Serial Number and a Product Number (e.g. &lt;code&gt;20W0-#ABA&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple:&lt;/strong&gt; Uses 10 to 12 character serials with strict cryptographic validation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The "Power-On" Bottleneck for Specs:&lt;/strong&gt;
To determine whether an incoming laptop has an Intel Core i7 or i5, 16GB or 8GB of RAM, and a 512GB NVMe SSD, technicians normally have to boot into BIOS or install a live OS — taking 5 to 8 minutes per unit. For a pallet of 200 units, that is &lt;strong&gt;20 hours of manual labor&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partner API Red Tape:&lt;/strong&gt;
Enterprise APIs like Dell TechDirect require corporate partnership accreditation, months of legal compliance vetting, and steep recurring minimums.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  2. What CheckWarranty.info Does Differently
&lt;/h2&gt;

&lt;p&gt;CheckWarranty provides a single unified cloud platform and high-throughput B2B REST API that normalizes hardware warranty and factory Bill-of-Materials (BOM) specifications:&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Platform Capabilities
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unified Multi-Brand Normalization:&lt;/strong&gt; Query Dell, Lenovo, HP, and Apple in one single API format or web interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Factory As-Built BOM Decoding:&lt;/strong&gt; Extract original factory specs without powering on the device:

&lt;ul&gt;
&lt;li&gt;Processor family, generation, and exact model (e.g., &lt;code&gt;Intel Core i7-1185G7 @ 3.00GHz&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Factory RAM capacity and frequency (e.g., &lt;code&gt;16GB DDR4 3200MHz&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Solid-state drive tier and interface (e.g., &lt;code&gt;512GB PCIe NVMe M.2 SSD&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Original display panel resolution and discrete graphics tier.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component Swap &amp;amp; Tamper Detection:&lt;/strong&gt; Compare physical components against the factory build sheet to immediately catch swapped RAM, downgraded SSDs, or missing parts in returned corporate assets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Risk Billing Guarantee:&lt;/strong&gt; Unlike services that charge per API call regardless of success, CheckWarranty &lt;strong&gt;only deducts credits when actionable, verified device data is returned&lt;/strong&gt;. Invalid serials, errors, or &lt;code&gt;not_found&lt;/code&gt; results cost exactly &lt;strong&gt;0 credits&lt;/strong&gt; (held reservations are refunded automatically). Credits never expire.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bulk Processing (Up to 10,000 Serials):&lt;/strong&gt; Drag-and-drop Excel (&lt;code&gt;.xlsx&lt;/code&gt;) or CSV files directly into the web UI with real-time multi-threaded processing and formatted Excel export.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. High-Performance B2B REST API
&lt;/h2&gt;

&lt;p&gt;CheckWarranty is built API-first. You can integrate checks directly into warehouse intake conveyors, barcode scanner stations, or custom ERP systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Single Device Real-Time Lookup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://checkwarranty.info/api/v1/scan/single &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer cw_live_YOUR_API_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "serial": "PF2B9XYZ",
    "brand": "lenovo"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Standardized JSON Response Across All 4 Brands
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"success"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"serial"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PF2B9XYZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"brand"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"lenovo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ThinkPad T14 Gen 2 (Type 20W0)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"warrantyStatus"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ACTIVE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"startDate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2023-04-12"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"endDate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-04-11"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"daysRemaining"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;359&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"entitlement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Premier Support Onsite NBD"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"specs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"cpu"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Intel Core i7-1185G7"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"ram"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"16GB DDR4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"storage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"512GB NVMe SSD"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Open-Source ITAM Connectors
&lt;/h2&gt;

&lt;p&gt;We believe in supporting the open-source sysadmin community. We maintain open-source connectors for leading asset management systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Snipe-IT Asset Sync:&lt;/strong&gt; &lt;a href="https://github.com/checkwarranty/snipeit-warranty-sync" rel="noopener noreferrer"&gt;github.com/checkwarranty/snipeit-warranty-sync&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Zero pip dependencies (pure Python 3.9+ &lt;code&gt;urllib&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Auto-computes Snipe-IT's virtual &lt;code&gt;warranty_months&lt;/code&gt; formula: &lt;code&gt;round((end - start) / 30.4375)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Preserves invoice purchase dates and backfills manufacturer ship dates.&lt;/li&gt;
&lt;li&gt;Ready for Docker, Docker Compose, and nightly cron jobs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Get Started with 10 Free Scans
&lt;/h2&gt;

&lt;p&gt;You can test CheckWarranty with your own hardware fleet in under 2 minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Register at &lt;a href="https://checkwarranty.info" rel="noopener noreferrer"&gt;checkwarranty.info&lt;/a&gt; — every account receives &lt;strong&gt;10 complimentary scans&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Paste a few serial numbers into the &lt;a href="https://checkwarranty.info" rel="noopener noreferrer"&gt;web scanner&lt;/a&gt; or generate an API key in the Developer Dashboard.&lt;/li&gt;
&lt;li&gt;Explore the full interactive API documentation at &lt;a href="https://checkwarranty.info/docs/api" rel="noopener noreferrer"&gt;checkwarranty.info/docs/api&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Whether you manage an enterprise fleet or process high-volume hardware lots, we would love your feedback and feature requests!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>api</category>
      <category>architecture</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Automating Hardware Warranty Tracking and Factory Specs in Snipe-IT ITAM</title>
      <dc:creator>luksiko</dc:creator>
      <pubDate>Wed, 28 Oct 2026 16:30:26 +0000</pubDate>
      <link>https://dev.to/luksiko/automating-hardware-warranty-tracking-and-factory-specs-in-snipe-it-itam-dig</link>
      <guid>https://dev.to/luksiko/automating-hardware-warranty-tracking-and-factory-specs-in-snipe-it-itam-dig</guid>
      <description>&lt;p&gt;Maintaining accurate warranty expiration dates and hardware specifications across hundreds or thousands of enterprise laptops is one of the most frustrating chores in IT Asset Management (ITAM). &lt;/p&gt;

&lt;p&gt;Most organizations running &lt;a href="https://snipeitapp.com/" rel="noopener noreferrer"&gt;Snipe-IT&lt;/a&gt; have complete lists of serial numbers, but fields like warranty expiration date, purchase date, CPU model, and factory RAM/SSD capacity often remain blank.&lt;/p&gt;

&lt;p&gt;In this guide, we will demonstrate how to automate warranty tracking and factory hardware enrichment in Snipe-IT using an open-source Python synchronizer.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Snipe-IT Warranty Architecture Challenge
&lt;/h2&gt;

&lt;p&gt;In Snipe-IT, &lt;code&gt;warranty_expires&lt;/code&gt; is not an independently writable database column. Instead, Snipe-IT dynamically calculates expiration dates using:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;warranty_expires = purchase_date + warranty_months&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If an API script attempts to send &lt;code&gt;{"warranty_expires": "2026-05-01"}&lt;/code&gt;, Snipe-IT simply ignores the value. To update expiration dates properly via API, a synchronizer must:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Supply or preserve the asset's &lt;code&gt;purchase_date&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Accurately calculate the integer difference in &lt;code&gt;warranty_months&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Submit both fields so Snipe-IT renders the correct expiration date across all UI dashboards.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  How the Synchronizer Works
&lt;/h2&gt;

&lt;p&gt;The open-source &lt;a href="https://github.com/checkwarranty/snipeit-warranty-sync" rel="noopener noreferrer"&gt;checkwarranty/snipeit-warranty-sync&lt;/a&gt; tool operates with &lt;strong&gt;zero external pip dependencies&lt;/strong&gt;, using Python 3 standard library:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queries Snipe-IT hardware API for assets missing warranty dates.&lt;/li&gt;
&lt;li&gt;Detects manufacturer (Dell, Lenovo, HP, Apple) via serial number syntax or model name.&lt;/li&gt;
&lt;li&gt;Queries CheckWarranty API to fetch confirmed warranty coverage and factory component configurations.&lt;/li&gt;
&lt;li&gt;Updates Snipe-IT asset records: sets &lt;code&gt;purchase_date&lt;/code&gt; and &lt;code&gt;warranty_months&lt;/code&gt;, and maps factory specs (CPU, RAM, SSD, display) to custom fields.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step-by-Step Setup
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Clone and Configure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/checkwarranty/snipeit-warranty-sync.git
&lt;span class="nb"&gt;cd &lt;/span&gt;snipeit-warranty-sync
&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure your environment credentials in &lt;code&gt;.env&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="py"&gt;SNIPEIT_URL&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;https://assets.yourcompany.com&lt;/span&gt;
&lt;span class="py"&gt;SNIPEIT_API_TOKEN&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;your_snipe_it_personal_access_token&lt;/span&gt;
&lt;span class="py"&gt;CHECKWARRANTY_API_KEY&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;cw_live_your_api_key&lt;/span&gt;
&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c"&gt;# Optional: Map factory specs to your Snipe-IT custom fields
&lt;/span&gt;&lt;span class="py"&gt;FIELD_WARRANTY_EXPIRATION&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;_snipeit_warranty_exp_5&lt;/span&gt;
&lt;span class="py"&gt;FIELD_CPU&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;_snipeit_cpu_1&lt;/span&gt;
&lt;span class="py"&gt;FIELD_RAM&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;_snipeit_ram_2&lt;/span&gt;
&lt;span class="py"&gt;FIELD_STORAGE&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;_snipeit_storage_3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Safe Dry-Run Simulation
&lt;/h3&gt;

&lt;p&gt;Always verify what the script would change before updating your production database:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python sync.py &lt;span class="nt"&gt;--dry-run&lt;/span&gt; &lt;span class="nt"&gt;--limit&lt;/span&gt; 25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output displays simulated payloads:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[INFO] Querying CheckWarranty: #104 [Serial: 8HG76F2, Brand: dell]...
[INFO] [DRY RUN] Would update asset #104 (8HG76F2) with: {
  'purchase_date': '2023-01-15', 
  'warranty_months': 36, 
  '_snipeit_cpu_1': 'Intel Core i7-1185G7', 
  '_snipeit_ram_2': '16GB DDR4', 
  '_snipeit_storage_3': '512GB NVMe SSD'
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Run via Docker or Cron
&lt;/h3&gt;

&lt;p&gt;To run unattended via Docker Container:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;SNIPEIT_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://assets.yourcompany.com"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;SNIPEIT_API_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"token"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;CHECKWARRANTY_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"cw_live_..."&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  ghcr.io/checkwarranty/snipeit-warranty-sync:latest &lt;span class="nt"&gt;--limit&lt;/span&gt; 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or add to Linux cron (&lt;code&gt;crontab -e&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;0 2 &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; /opt/snipeit-warranty-sync &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 sync.py &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /var/log/snipeit-sync.log 2&amp;gt;&amp;amp;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Resources &amp;amp; Discussion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/checkwarranty/snipeit-warranty-sync" rel="noopener noreferrer"&gt;checkwarranty/snipeit-warranty-sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Snipe-IT Community Discussion:&lt;/strong&gt; &lt;a href="https://github.com/grokability/snipe-it/discussions/19966" rel="noopener noreferrer"&gt;github.com/grokability/snipe-it/discussions/19966&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reddit Thread:&lt;/strong&gt; &lt;a href="https://www.reddit.com/r/Snipe_IT/s/vmctFzA13T" rel="noopener noreferrer"&gt;reddit.com/r/Snipe_IT&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CheckWarranty API Documentation:&lt;/strong&gt; &lt;a href="https://checkwarranty.info/docs/api" rel="noopener noreferrer"&gt;checkwarranty.info/docs/api&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>opensource</category>
      <category>python</category>
      <category>sysadmin</category>
    </item>
  </channel>
</rss>
