Marketplace Chat Context
About the author (Artem)
- Role: Creatio platform specialist (BPM / low-code CRM)
- Audience: ~15,000 LinkedIn connections, regular posting cadence (~20 likes avg)
- Goal: Build visibility as a Creatio implementation expert. Attract consulting/freelance clients. Not selling SQL Cor as a product — using it as proof of competence.
- CTA for all content: “Available for Creatio implementation projects and consulting. DM me to discuss.” (rotate variants)
- Language: English only for all public content
- Tone: Warm, accessible, problem-focused. Minimal deep technical language — focus on business problems solved, not implementation details.
- AI disclosure: Do not volunteer that the product was built with AI assistance. If directly asked, answer honestly. Use “I built” / “I created” in posts.
- Location: Ukraine visible in LinkedIn profile — not mentioned in posts unless asked.
- No Creatio HQ job-seeking: Don’t frame content as “looking to join Creatio the company.”
Product: SQL Cor
One-sentence description
SQL Cor is a secure SQL terminal built into Creatio Cloud, giving administrators direct database access with role-based permissions, a configurable blacklist, and a complete audit trail.
The problem it solves
Creatio Cloud administrators have no direct database access. Every time an admin needs to verify data, debug a workflow, or run a quick query, they must either:
- File a support ticket with their Creatio partner and wait days
- Navigate dozens of Creatio screens manually
- Export to Excel and analyze offline
SQL Cor eliminates this bottleneck — a controlled SQL terminal directly inside Creatio.
Distribution
- Free, open source (MIT)
- GitHub download only (no Marketplace listing)
- Standard Creatio package install — drag and drop .zip, ~5-10 minutes
Complete feature list (use for accurate content)
SQL Terminal page
Header:
- ⚙️ Administration button — visible to SysAdmin only, switches to admin panel
- 🌙/☀️ Theme toggle — Dark / Light, saved in browser localStorage
- 🇺🇦/🇬🇧 Language button — Ukrainian / English, instant switch
- ℹ️ About button — modal with version, features list, contact info
Toolbar:
- ▶️ Execute (F5 / Ctrl+Enter) — runs SQL against the database
- 🧹 Clear — empties editor
- ⚖️ Dry Run toggle — when ON: executes query inside a transaction that always ROLLBACK. Shows accurate row counts and errors without committing any changes. Triggers may still fire (expected behavior).
- 🗄️ DB Indicator — shows connected database name (e.g. Production_DB_Main), display only
Editor:
- Syntax highlighting (keywords cyan, strings orange, comments gray, numbers green)
- Line numbers, Tab indentation
- Autosave to localStorage — query restored on refresh
- F5 / Ctrl+Enter to execute
- Ctrl+Z/Y undo/redo, Ctrl+/ comment line
Smart Hints (yellow bar, auto-appears after certain errors):
- Case-sensitive table names: suggests adding double quotes + “INSERT INTO EDITOR” button
- TOP vs LIMIT: detects MSSQL syntax, rewrites to PostgreSQL + “INSERT INTO EDITOR”
- Permission error: suggests checking Access Control
- Ambiguous column: suggests adding table alias + “INSERT INTO EDITOR”
Results panel:
- Data table: NULL=italic, TRUE=green, FALSE=red, numbers right-aligned
- “X rows returned in Y ms” / “X rows changed in Y ms”
- Row limit notice when results truncated
- 📥 Export to CSV — available after successful SELECT
Footer:
- 🟢/🔴/🟡 Connection status
- Latency (ms) — last query time
- Memory (%) — browser JS heap
- Session timer (HH:MM:SS)
Dialogs:
- Destructive Operation confirmation: appears when query contains DELETE and Dry Run is OFF
- Confirm → executes DELETE
- Cancel → nothing happens
Administration panel (4 tabs, SysAdmin only)
Tab 1: Access Control
- Statistics: active rules count, users count, roles count
- Filters: search by name, filter by category/type/status
- Table: Subject (avatar+name+email), Type, Category, Status, Valid Until, Actions
- Actions per Active rule: Revoke 🚫 (deactivates, keeps record) / Delete 🗑️ (permanent)
- Actions per Revoked rule: Edit ✏️ (with Activate button inside) / Delete 🗑️
- Grant Access dialog:
- Subject type: User or Role (radio)
- Dropdown: dynamic search of users or roles
- Access Level: ReadOnly (10) / DML (20) / DDL (30)
- Valid Until: date picker (empty = permanent)
- Comment: text field
- Save / Cancel
Tab 2: Blacklist
- Statistics: System rules count (🔒, immutable), Manual rules count, Total
- Table: Icon, Name, Source (System/Manual), Type (Table/Field/Keyword), Reason, Actions
- System rules have NO action buttons — cannot be edited or deleted
- Add Rule dialog:
- Record type: Table / Field / Keyword (radio)
- Value: text input (e.g. SysUser, Account.SecretKey, DROP)
- Description: shown to users when their query is blocked
- Save / Cancel
- Hardcoded system rules (always blocked, no exceptions): xp_cmdshell, pg_read_file, pg_sleep, pg_terminate_backend, OPENROWSET, DROP DATABASE, DnSql* table modifications
Tab 3: Execution Logs
- Filters: search text, date From/To, quick presets: Day / Week / Month
- Table: Time, User, Query (truncated), Duration (ms), Rows, Status (Success 🟢 / Error 🔴 / Syntax ⚠️)
- Pagination: 50 records per page
- Click any row → Query Detail popup:
- Metadata (user, time, duration, rows, status)
- Error text in red (if Status=Error)
- Full query with syntax highlighting
- Copy button
Tab 4: System Settings
- System Info block (read-only): package version, DBMS, active rules count, DB ping latency
- Sliders (apply immediately, no save button):
- Query Timeout: 5s–300s (default 30s)
- Log Retention: 0–365 days (default 90)
- Max Rows: 100–10,000 (default 1,000)
- Toggle: Auto-Abort Heavy Queries (kills queries >1GB RAM)
- Maintenance Mode:
- Large toggle with ACTIVE (yellow) / INACTIVE (gray) indicator
- Custom message text field (shown to users during maintenance)
- When ACTIVE: all non-SysAdmin users cannot execute queries
- SysAdmins are NOT blocked during maintenance
- No auto-expiry — must be turned off manually
- Service Actions:
- Check Connection → toast: “Database connection established (X ms)” or error
- Check Access Level → toast showing current role
- Clear Logs → requires confirmation → toast: “Deleted: X records” (irreversible)
All system messages (exact text)
Success toasts (green)
- “Settings saved”
- “Rule added”
- “Rule updated”
- “Database connection established (X ms)”
- “Deleted: X records”
Error toasts (red)
- “Network error”
- “No database connection”
- “403 access denied” (session expired or role revoked)
Results panel messages
- “X rows returned in Y ms”
- “X rows changed in Y ms”
- “Statement executed successfully. (Y ms)”
- “Results limited to X rows. Use LIMIT in your query for precise control.”
- “Access denied. Your access level is Read-only. This operation requires DML access.”
- “Access denied. Your access level is DML. This operation requires DDL access.”
- “This query is blocked by the system. Reason: [description]”
- “Query execution timeout exceeded.”
- “Multi-statement queries are not allowed for Read-only access.”
Confirm dialogs
- “Revoke this access? The user will lose access immediately.”
- “Delete this access rule permanently? This cannot be undone.”
- “Delete this blacklist rule? Queries matching this pattern will no longer be blocked.”
- “Clear all logs? This action cannot be undone.”
Security mechanics (for accurate content)
- Access check: SysAdmin role via
SysUserInRoleOR activeDnSqlAccessRulerecord - Dry Run: Executes query in a real database transaction, collects results, then ROLLBACK. No data committed.
- Literal masking: Before blacklist analysis, content inside single quotes is masked. Prevents false positives (e.g., the text ‘DROP TABLE’ in a WHERE clause doesn’t trigger the block).
- LIMIT injection: For SELECT without LIMIT, the backend automatically adds LIMIT X (PostgreSQL) or wraps with TOP X (MSSQL)
- Multi-statement protection: ReadOnly users: queries with multiple
;-separated statements are rejected entirely - DnSql self-protection:* Any modification of SQL Cor’s own config tables is blocked regardless of access level
- Cloud DML: Creatio Cloud blocks standard
DBExecutor.Execute. SQL Cor usesCustomQuery.ExecuteNonQueryvia .NET reflection as a workaround.
Content strategy (from previous planning)
LinkedIn content plan (6-week launch sequence)
| Week | Posts |
|---|---|
| 1 (warm-up) | Post #1: The Problem (no SQL Cor mention) · Post #2: Personal angle · Post #3: Industry observation |
| 2 (hint) | Post #4: Behind-the-scenes teaser + one screenshot · Post #5: Industry observation |
| 3 (LAUNCH) | Post #6: SQL Cor REVEAL (hero post, pin it) + Creatio Community post · Post #7: Use case spotlight · Post #8: Soft retrospective |
| 4-6 (sustain) | Deep-dive posts, use cases, Medium article |
Between SQL Cor posts — inter-topic ideas:
- “5 mistakes I see in Creatio implementations”
- “How I evaluate client projects”
- “Low-code is replacing PMs, not developers”
- “The case for boring tools in enterprise software”
- “Creatio Cloud vs On-Premise: what actually matters”
Content angles
| Angle | Message | Best for |
|---|---|---|
| Productivity | ”Stop waiting 2 days for a query. 30 seconds.” | General audience, LinkedIn |
| Autonomy | ”Give admins the access they need without losing control” | Technical, CTOs |
| Audit/Compliance | ”Every query logged, every action traceable” | Enterprise, partners |
| Story | ”I kept seeing this pain, so I built a fix” | Personal posts, community |
Tagline candidates (test in posts)
- “SQL access for Creatio Cloud admins. Safe, audited, in-platform.”
- “Stop filing tickets for database queries. Run them yourself.”
- “The admin tool Creatio Cloud was missing.”
- “An SQL terminal that respects access control.”
Deliverables backlog (what to generate in this chat)
Priority 1 — Foundation
- Master Product Story (600-800 words, source for everything else)
- GitHub README (hero image, features, install steps, screenshots)
- LinkedIn bio update (headline variants + About section)
Priority 2 — Warm-up posts
- LinkedIn Post #1: The Problem
- LinkedIn Post #2: Personal angle
- LinkedIn Post #3: Industry observation
Priority 3 — Launch
- Demo video script (3-5 min)
- LinkedIn Post #6: The REVEAL
- Comment reply templates (12 scenarios)
- Creatio Community post (1200-1500 words)
Priority 4 — Sustaining
- LinkedIn Posts #7-#8
- 3-5 inter-topic posts (topics listed above)
- Medium article (1500-2000 words)
Priority 5 — Documentation marketing
- GitHub README (already in deliverables above)
- Short feature overview for landing page / GitHub description
What Claude should do in this chat
- Read PRODUCT_FACT_SHEET.md for accurate product details before generating any content
- Maintain consistent voice: warm, accessible, problem-first, minimal deep tech
- Generate complete ready-to-publish assets (don’t ask 5 questions before drafting)
- Provide A/B variants for posts when a hook could go multiple directions
- Flag anything that seems factually inconsistent with the product description
- Suggest best publishing day/time for LinkedIn posts
- Prepare comment reply templates alongside launch posts
What Claude should NOT do
- Mention Ukraine, war, or geography in posts (unless asked)
- Claim SQL Cor was AI-built
- Use buzzword language (“revolutionary”, “game-changing”, “cutting-edge”)
- Write engagement-bait (“Comment below! Like and share!”)
- Add excessive hashtags (3-5 max per post)
- Overuse emojis (0-2 per post)
- Suggest paid ads, email campaigns, or Marketplace listing (Artem chose GitHub-only)
Output format preferences
LinkedIn posts:
- Post text (ready to copy-paste)
- Suggested hashtags (3-5)
- Best publish time suggestion
- If multiple approaches: label clearly (Variant A: Story-focused / Variant B: Data-focused)
Articles (Medium, Community):
- Full article text
- Suggested title (2 alternatives)
- Meta description (under 160 chars)
- Screenshot placement suggestions [Screenshot: description]
Comment templates: Label each: “Reply to compliment” / “Reply to technical question” / etc. Write as copy-paste ready, natural English.
SQL Cor — Secure SQL Workbench for Creatio. Free and open source. License: MIT.