Skip to content

fix: update templates api keys#8752

Merged
mfortman11 merged 9 commits into
mainfrom
change-api-keys
Jun 27, 2025
Merged

fix: update templates api keys#8752
mfortman11 merged 9 commits into
mainfrom
change-api-keys

Conversation

@Yukiyukiyeah
Copy link
Copy Markdown
Contributor

@Yukiyukiyeah Yukiyukiyeah commented Jun 26, 2025

All occurrences should be replaced with the corresponding company’s global API key variable. For example:
OpenAI → OPENAI_API_KEY
Anthropic → ANTHROPIC_API_KEY

For Astra fields:
"name": "api_endpoint" → ASTRA_DB_API_ENDPOINT
"name": "token" → ASTRA_DB_APPLICATION_TOKEN

Turn the field "load_from_db": true on those fields

Summary by CodeRabbit

  • Chores
    • Updated default values and loading behavior for API key and endpoint fields across all starter projects. API keys and endpoints now load from the database by default and use environment variable placeholders, reducing the need for manual entry during setup. This improves ease of configuration and enhances security for sensitive credentials.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 26, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This change updates the configuration of API key and endpoint input fields in multiple starter project JSON files. The modifications set load_from_db to true and assign default environment variable placeholders (e.g., "OPENAI_API_KEY") for these fields, enabling them to load values from the database or environment by default rather than requiring manual entry.

Changes

Files (grouped) Change Summary
Basic Prompt Chaining.json, Text Sentiment Analysis.json Updated api_key in Language Model nodes: load_from_db set to true, default value set to "OPENAI_API_KEY"
Basic Prompting.json, Research Translation Loop.json, SEO Keyword Generator.json Updated api_key in Language Model component: load_from_db set to true, default value to "OPENAI_API_KEY"
Blog Writer.json, Twitter Thread Generator.json Updated api_key in Language Model component: load_from_db set to true, default value to "OPENAI_API_KEY"
Custom Component Maker.json, Portfolio Website Code Generator.json Updated api_key in Anthropic model/component: load_from_db set to true, default value to "ANTHROPIC_API_KEY"
Hybrid Search RAG.json, Vector Store RAG.json Updated api_endpoint in Astra DB component: load_from_db set to true, default value to "ASTRA_DB_API_ENDPOINT"
Instagram Copywriter.json, Market Research.json, Research Agent.json, Price Deal Finder.json Updated api_key in Tavily, Agent, and Language Model components: load_from_db set to true, default values to appropriate environment variable placeholders
Invoice Summarizer.json, Pokédex Agent.json, SaaS Pricing.json, Simple Agent.json, Social Media Agent.json Updated api_key in Agent component: load_from_db set to true, default value to "OPENAI_API_KEY"
News Aggregator.json, Search agent.json Updated api_key in AgentQL, Agent, and ScrapeGraph components: load_from_db set to true, default values to environment variable placeholders
Meeting Summary.json, Youtube Analysis.json Updated api_key in multiple components (AssemblyAI, Agent, Language Model, YouTube): load_from_db set to true, default values set to environment variable placeholders
Sequential Tasks Agents.json Updated api_key in multiple Agent components and Tavily Search: set default values to environment variable placeholders, Tavily load_from_db set to true
Travel Planning Agents.json Updated api_key in Search API and Agent components: load_from_db set to true, default values to environment variable placeholders

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant StarterProjectComponent
    participant Database
    participant Environment

    User->>StarterProjectComponent: Open starter project
    StarterProjectComponent->>Database: Check for stored API key
    alt API key found in DB
        Database-->>StarterProjectComponent: Return stored API key
    else API key not found
        StarterProjectComponent->>Environment: Use default environment variable placeholder
    end
    StarterProjectComponent-->>User: Component initialized with API key (from DB or env)
Loading

Possibly related PRs

  • langflow-ai/langflow#8618: Refactors and generalizes the LanguageModelComponent and starter templates, which is directly related to the changes in API key config fields in this PR.

Suggested labels

bug, size:M, lgtm

Suggested reviewers

  • ogabrielluiz
  • edwinjosechittilappilly
✨ Finishing Touches
🧪 Generate Unit Tests
  • Create PR with Unit Tests
  • Post Copyable Unit Tests in Comment
  • Commit Unit Tests in branch change-api-keys

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions Bot added the bug Something isn't working label Jun 26, 2025
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 26, 2025
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels Jun 26, 2025
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (4)
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (1)

1020-1070: update_build_config misses syncing the env-var placeholder

Inside the component’s Python code (string), the provider switch only updates
display_name; it should also swap the default placeholder so templates stay in
sync with the newly-selected provider:

@@
-                build_config["api_key"]["display_name"] = "OpenAI API Key"
+                build_config["api_key"]["display_name"] = "OpenAI API Key"
+                build_config["api_key"]["value"] = "OPENAI_API_KEY"
@@
-                build_config["api_key"]["display_name"] = "Anthropic API Key"
+                build_config["api_key"]["display_name"] = "Anthropic API Key"
+                build_config["api_key"]["value"] = "ANTHROPIC_API_KEY"
@@
-                build_config["api_key"]["display_name"] = "Google API Key"
+                build_config["api_key"]["display_name"] = "Google API Key"
+                build_config["api_key"]["value"] = "GOOGLE_API_KEY"

Without this, users must manually edit the secret every time they change provider, defeating the purpose of this PR’s automation.

src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json (1)

1740-1757: API-key placeholder is no longer updated when switching provider → wrong key will be pulled from DB

load_from_db is correctly set to true, but the hard-coded default value remains "OPENAI_API_KEY".
update_build_config() only tweaks display_name; it never rewrites the value field.
If the user changes provider to Anthropic or Google, the component will still try to retrieve OPENAI_API_KEY, resulting in authentication failures.

Minimal patch:

@@
             elif field_value == "Anthropic":
                 build_config["model_name"]["options"] = ANTHROPIC_MODELS
                 build_config["model_name"]["value"] = ANTHROPIC_MODELS[0]
                 build_config["api_key"]["display_name"] = "Anthropic API Key"
+                build_config["api_key"]["value"] = "ANTHROPIC_API_KEY"
             elif field_value == "Google":
                 build_config["model_name"]["options"] = GOOGLE_GENERATIVE_AI_MODELS
                 build_config["model_name"]["value"] = GOOGLE_GENERATIVE_AI_MODELS[0]
                 build_config["api_key"]["display_name"] = "Google API Key"
+                build_config["api_key"]["value"] = "GOOGLE_API_KEY"

Without this, the new load_from_db logic will silently fetch the wrong secret for non-OpenAI providers.
Please update the template or the build-config mutation accordingly.

src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json (1)

338-354: AssemblyAI poller is populated with the wrong env-var constant

"value": "OPENAI_API_KEY" will inject an OpenAI key into an AssemblyAI component.
Use the dedicated placeholder ("ASSEMBLY_API_KEY") to avoid authentication failures and accidental key leakage between providers.

-                "load_from_db": true,
-                "name": "api_key",
-                ...
-                "type": "str",
-                "value": "OPENAI_API_KEY"
+                "load_from_db": true,
+                "name": "api_key",
+                ...
+                "type": "str",
+                "value": "ASSEMBLY_API_KEY"
src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (1)

1388-1404: api_key field now loads from DB — confirm placeholder semantics

Switching "load_from_db" to true and hard-coding the default value to the literal string "OPENAI_API_KEY" is on-spec with the PR goals, but double-check two things:

  1. At runtime the build engine must treat the string as a placeholder, not the actual key.
  2. If a value is found in the DB, it should override this default; some loaders prioritise the default over stored values.

If either of those assumptions is false, leave value empty (or use an explicit sentinel such as "__ENV__:OPENAI_API_KEY").

-        "value": "OPENAI_API_KEY"
+        "value": ""

Tagging for your consideration.

♻️ Duplicate comments (5)
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json (2)

1551-1569: Same provider-sensitive placeholder concern as above
See previous comment – the exact issue repeats for this component.


1838-1856: Same provider-sensitive placeholder concern as above
See first comment – the issue recurs here.

src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json (2)

2030-2048: Same issue as above – hard-coded "OPENAI_API_KEY"

The identical problem appears in this LanguageModelComponent; see previous comment for details and proposed fix.


2321-2339: Same issue as above – hard-coded "OPENAI_API_KEY"

The identical problem appears here; see the first comment for rationale and fix.

src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (1)

2310-2326: Same issue: provider-agnostic component ships with an OpenAI placeholder

Same consideration as above for the second LanguageModelComponent.
Leaving an empty default (or provider-specific mapping in build-config) avoids mismatched placeholders when the provider changes.

🧹 Nitpick comments (16)
src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (1)

1323-1324: Consider leaving the default value blank

Even though the literal "OPENAI_API_KEY" is only a placeholder, it will appear pre-filled in the UI and may be mistaken for a real key. An empty default keeps users from accidentally saving a non-functional value.

-        "value": "OPENAI_API_KEY"
+        "value": ""
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json (1)

1265-1282: Default key placeholder should adapt to provider changes

Hard-coding "value": "OPENAI_API_KEY" works for the default OpenAI provider but becomes misleading once the user switches the component to Anthropic or Google. update_build_config() already updates the display_name of the api_key field when provider changes; consider updating the value as well (e.g., to ANTHROPIC_API_KEY or GOOGLE_API_KEY) so that:

  1. Docs/tooltips stay consistent with the active provider.
  2. Users aren’t tempted to paste the wrong secret into the wrong env var slot.

An illustrative tweak inside update_build_config:

@@
     if field_name == "provider":
         if field_value == "OpenAI":
+            build_config["api_key"]["value"] = "OPENAI_API_KEY"
         elif field_value == "Anthropic":
+            build_config["api_key"]["value"] = "ANTHROPIC_API_KEY"
         elif field_value == "Google":
+            build_config["api_key"]["value"] = "GOOGLE_API_KEY"

This keeps the starter project templates self-documenting across providers.

src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (2)

137-146: Verify that the new placeholder won't be sent as a literal API key

load_from_db was flipped to true and the default value was changed to the string "SCRAPEGRAPH_API_KEY".
Double-check that your runtime replaces this placeholder (or pulls the secret from the DB) before the component constructs the sgai_client. Otherwise the request will carry the literal string and fail authentication.

Minor polish (optional):

-                "placeholder": "",
+                "placeholder": "SCRAPEGRAPH_API_KEY",

This keeps the UI consistent with the default value.


1108-1118: Same concern for the Agent’s OpenAI key

The Agent component now defaults to "OPENAI_API_KEY" with load_from_db: true.
Please confirm:

  1. The global secret exists under that exact name.
  2. The backend replaces / injects the real key at execution time, not leaving the literal placeholder.

Optional UI tweak for consistency:

-                "placeholder": "",
+                "placeholder": "OPENAI_API_KEY",
src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (1)

1408-1424: Verify placeholder syntax for automatic API-key injection

"load_from_db": true is now paired with the literal string "OPENAI_API_KEY".
Before merging, double-check that the Langflow loader treats an un-wrapped token (no ${…} / {{…}}) as the environment-variable key. If the runtime expects a different placeholder format, this may silently fall back to an empty string.

Minor: the on-canvas “💡 Add your OpenAI API key here” notes might be misleading now that the key is pulled automatically—consider updating or removing them for clarity.

src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (2)

1193-1210: API key field correctly wired to env/DB – consider adding a placeholder for UX clarity

load_from_db is now true and the default value is the env-var sentinel TAVILY_API_KEY, which aligns with the new template strategy.
Minor nit: leaving "placeholder": "" means the UI shows a blank input. Setting the same sentinel as a placeholder would hint the user what will be fetched.

-        "placeholder": "",
+        "placeholder": "TAVILY_API_KEY",

2157-2173: Agent component aligned – but value is always “OPENAI_API_KEY” even for non-OpenAI providers

When the user later flips agent_llm to Anthropic/Google/Groq, the sentinel will still read OPENAI_API_KEY.
The provider-switching logic already mutates display_name; you might also want to swap the default value accordingly to avoid confusion.

-        "value": "OPENAI_API_KEY"
+        "value": "ANTHROPIC_API_KEY"   # if provider == "Anthropic"
+        "value": "GOOGLE_API_KEY"      # if provider == "Google Generative AI"

If that dynamic substitution is handled elsewhere, feel free to skip.

src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (3)

788-804: Default API-key placeholder may be mistaken for a real secret

"value": "TAVILY_API_KEY" is hard-coded as the secret’s value.
With load_from_db: true, an unset DB value would fall back to this literal and the component would attempt to call Tavily with the string TAVILY_API_KEY, producing 401s that are hard to diagnose.

Consider leaving value empty (or using a clearly invalid sentinel such as "") and rely exclusively on the DB / env loader:

- "load_from_db": true,
- ...
- "value": "TAVILY_API_KEY"
+ "load_from_db": true,
+ ...
+ "value": ""

This avoids accidental misuse while still advertising the required env var in docs / notes.


1186-1202: Same placeholder issue as above for AgentQL

The literal "AGENTQL_API_KEY" will be sent to AgentQL if the key isn’t found in the DB.
Adopt the same safe pattern (empty string or explicit sentinel) to prevent silent auth failures.


1747-1763: OpenAI secret placeholder should be blank to avoid failed calls

For consistency and to avoid leaking a dummy value to the OpenAI client, prefer:

- "value": "OPENAI_API_KEY"
+ "value": ""

Down-stream logic can still fetch OPENAI_API_KEY from env when load_from_db is true.

src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (1)

892-902: api_key placeholder should adapt when the provider changes

The default value "OPENAI_API_KEY" makes sense for the default provider, but AgentComponent.update_build_config() only updates the field’s display_name, not its value.
If a user switches the provider to Anthropic or Google, the stale placeholder will still be "OPENAI_API_KEY" and ChatAnthropic / ChatGoogleGenerativeAI will receive the wrong secret.

Consider extending update_build_config() to switch the placeholder string as well, e.g.:

- build_config["api_key"]["display_name"] = "Anthropic API Key"
+ build_config["api_key"]["display_name"] = "Anthropic API Key"
+ build_config["api_key"]["value"] = "ANTHROPIC_API_KEY"
src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (2)

2183-2199: OpenAI key now pulled from DB – confirm behaviour for non-OpenAI providers

Agent defaults to the OpenAI provider, so "OPENAI_API_KEY" as the default value is fine.
However, if a user later switches agent_llm to Anthropic/Google in the UI, update_build_config only updates display_name; it does not overwrite the value field, so the stale "OPENAI_API_KEY" string will still be sent.

Consider updating update_build_config to refresh the default value when the provider changes, or leave value blank so that each provider inserts its own default.


2648-2664: LanguageModelComponent default key updated

Same observation as above: the template now correctly loads OPENAI_API_KEY from DB, but if the user changes provider to Anthropic/Google the value will stay as "OPENAI_API_KEY".
Worth ensuring the dynamic build-config logic also resets the value for a smoother UX.

src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (1)

2018-2034: Hard-coded OPENAI_API_KEY default limits multi-provider support

The default value is always "OPENAI_API_KEY".
When the user switches the provider to Anthropic or Google, the UI will still pre-populate the OpenAI key placeholder, which can be confusing.

- "value": "OPENAI_API_KEY"
+ "value": ""

Let the provider-specific update_build_config logic inject the right placeholder instead of baking one in up-front.

src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (1)

1945-1962: Agent components now reference OPENAI_API_KEY

All three agent templates (City Selection, Local Expert, Travel Concierge) now default their api_key input to the global OPENAI_API_KEY, keeping load_from_db: true.
This removes the need for manual entry and aligns with the new convention.

Only caveat: if a user later switches the provider dropdown (agent_llm) to Anthropic/Groq/etc. they must also update the key value accordingly. The dynamic-update logic in update_build_config should handle that, but worth a quick click-test in the UI.

Consider adding a short tooltip/hint to the field description reminding users that the key value must match the chosen provider when they deviate from “OpenAI”.

Also applies to: 2489-2506, 3033-3050

src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (1)

768-773: Update help text to match new behaviour

The note still instructs users to paste their key in the Agent component, but they now supply it via env / DB. Re-word to “Ensure your OPENAI_API_KEY is configured in Settings” to avoid confusion.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e73c626 and 944c6e0.

📒 Files selected for processing (26)
  • src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json (6 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Hybrid Search RAG.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (7 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (5 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json (7 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (3 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (4 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (7 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (3 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (4 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json (6 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (4 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (4 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (5 hunks)
🧰 Additional context used
🧠 Learnings (25)
📓 Common learnings
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (1)
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json (2)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:54.855Z
Learning: When implementing a new component icon in Langflow, ensure the icon name used in the backend Python 'icon' attribute matches exactly (case-sensitive) with the frontend icon mapping and lazy import key.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (1)

undefined

<retrieved_learning>
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-06-23T12:46:23.863Z
Learning: Starter project files are auto-formatted after running 'langflow run'; these formatting changes can be committed or ignored as needed.
</retrieved_learning>

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Label PR
🔇 Additional comments (32)
src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (1)

1094-1110: Confirm env-var resolution – literal "OPENAI_API_KEY" may be interpreted as an actual secret value

load_from_db is set to true, so the front-end/back-end logic must treat the string in value as the name of the variable to pull from secure storage (or the environment).
Please double-check that the resolution code expects exactly "OPENAI_API_KEY" (without ${…} or other delimiters). If it expects a different token format, users might end up with the literal string "OPENAI_API_KEY" being persisted or sent to the provider, breaking requests and potentially leaking confusion into logs.

If the resolver does require ${VAR} style tokens, update accordingly:

-                "value": "OPENAI_API_KEY"
+                "value": "${OPENAI_API_KEY}"
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (1)

957-974: ```shell
#!/bin/bash

Locate the JSON file

echo "File path:"
find src -type f | grep "Basic Prompting.json"

Show context around the api_key definition

echo -e "\nContext around lines 940-1000:"
sed -n '940,1000p' src/backend/base/langflow/initial_setup/starter_projects/Basic\ Prompting.json


</details>
<details>
<summary>src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (1)</summary>

`991-1008`: **API-key field now correctly uses `load_from_db`; looks good**

The switch to  
```json
"load_from_db": true,
"value": "OPENAI_API_KEY"

aligns with the PR objective of centralising secrets and removes the need for users to paste keys into every starter project. No functional or security regressions spotted—the field still remains "password": true, so the value won’t be exposed in the UI.

src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json (2)

939-949: Good move enabling load_from_db

Switching load_from_db to true and injecting the OPENAI_API_KEY placeholder removes manual entry friction and standardises secret handling across templates. 👍


931-949: ```shell
#!/bin/bash
set -e

echo "Searching for update_build_config across the repo"
rg -n "update_build_config" -A5 -B5

echo -e "\nShowing JSON snippet around update_build_config in the SEO Keyword Generator JSON"
rg -n "update_build_config" "src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json" -A10 -B10


</details>
<details>
<summary>src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (1)</summary>

`1314-1315`: **`load_from_db` flag correctly enabled**

Switching `"load_from_db"` to `true` ensures the key is pulled from the secrets store instead of the (editable) JSON. Matches the PR objective—no issues spotted.

</details>
<details>
<summary>src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json (1)</summary>

`1897-1914`: To confirm whether the `value` field is set for `api_key`, let’s dump a larger context around its definition:


```shell
#!/bin/bash
set -e
# Show 15 lines before and after the api_key block to verify the "value" key
rg -n -C15 '"name": "api_key"' src/backend/base/langflow/initial_setup/starter_projects/Twitter\ Thread\ Generator.json
src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json (1)

1393-1410: Hard-coding the placeholder to OPENAI_API_KEY breaks cross-provider flows

"value": "OPENAI_API_KEY" works only while the provider remains OpenAI.
If the user flips provider to Anthropic or Google, the field keeps loading OPENAI_API_KEY, so:

  1. ChatAnthropic / ChatGoogleGenerativeAI will receive the wrong secret.
  2. Users who previously relied on an empty placeholder to notice “I must enter a key” will no longer get that hint.

A minimal fix is to reset the value whenever the provider changes:

@@
             elif field_value == "Anthropic":
                 build_config["model_name"]["options"] = ANTHROPIC_MODELS
                 build_config["model_name"]["value"] = ANTHROPIC_MODELS[0]
                 build_config["api_key"]["display_name"] = "Anthropic API Key"
+                build_config["api_key"]["value"] = "ANTHROPIC_API_KEY"
             elif field_value == "Google":
                 build_config["model_name"]["options"] = GOOGLE_GENERATIVE_AI_MODELS
                 build_config["model_name"]["value"] = GOOGLE_GENERATIVE_AI_MODELS[0]
                 build_config["api_key"]["display_name"] = "Google API Key"
+                build_config["api_key"]["value"] = "GOOGLE_API_KEY"

Alternatively, keep the value empty and rely solely on load_from_db: true:

-                "value": "OPENAI_API_KEY"
+                "value": ""

Either approach prevents accidental key mix-ups across providers.

Please confirm the intended behaviour of load_from_db and whether multi-provider templates are expected to work out-of-the-box.

src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json (2)

389-407: API key placeholder correctly updated

The "value" for api_key is now set to "ANTHROPIC_API_KEY" while load_from_db remains true.
This aligns with the PR goal of referencing the global environment/API-key store and avoids shipping real credentials. No issues spotted.


729-746: Second Anthropic node kept in sync

Same change applied to the second Anthropic model instance, maintaining consistency across nodes. Looks good.

src/backend/base/langflow/initial_setup/starter_projects/Hybrid Search RAG.json (1)

1266-1275: API-endpoint field correctly converted to env-based loading

load_from_db is now true and the default value is the env placeholder ASTRA_DB_API_ENDPOINT.
This mirrors the new convention applied across the templates and removes hard-coded endpoints – nice.

No functional or security concerns detected here.

src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (1)

3440-3449: Double-check precedence between load_from_db and non-empty value

"load_from_db": true signals the UI/runtime to fetch the secret from secure storage, but a hard-coded fallback "value": "ASTRA_DB_API_ENDPOINT" is now provided as well.
Please confirm that:

  1. The loader ignores the value field when load_from_db is true (or vice-versa you actually want this string to be persisted if the secret is missing).
  2. "ASTRA_DB_API_ENDPOINT" exactly matches the name used by the secrets backend; a typo here will silently break look-ups.

If the runtime uses the first non-empty value it sees, consider leaving "value" empty to avoid accidentally exposing / persisting the placeholder.

Also applies to: 4201-4210

src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (2)

230-239: Ensure placeholder value is compatible with the “load_from_db” mechanism

"load_from_db": true means the UI/engine will attempt to pull the secret from the user-level credentials store.
If that lookup fails, the literal "value" field is used as a fallback. Shipping the hard-coded string AGENTQL_API_KEY could propagate unchanged to the runtime and cause authentication failures.

Please double-check that:

  1. The settings subsystem treats AGENTQL_API_KEY as a macro / env-var reference rather than a literal.
  2. No other starter projects rely on a different placeholder syntax (e.g. ${AGENTQL_API_KEY} or {{AGENTQL_API_KEY}}) – keep it consistent.

If the engine expects an empty string when the key is not found, consider reverting the "value" to "" (or the engine’s documented sentinel).


1480-1490: Same fallback concern for OpenAI key

"value": "OPENAI_API_KEY" follows the same pattern. Verify that the runtime expands or replaces this token instead of forwarding it verbatim to OpenAI.

Consistency tip: update the field’s info text (currently “The OpenAI API Key …”) to mention that the global key will be used automatically when left blank, so users understand the new behaviour.

src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json (1)

2621-2638: API key field correctly migrated, but confirm runtime support for load_from_db on SecretStrInput.

Switching load_from_db to true and seeding the field with the ANTHROPIC_API_KEY placeholder aligns with the new template-wide convention.
Please double-check that:

  1. SecretStrInput instances with load_from_db: true are actually fetched from the credentials store at runtime (some older helpers only handled StrInput).
  2. The backend recognises ANTHROPIC_API_KEY as the canonical global secret name (case-sensitive).

If both conditions are already covered, no further action is required.

src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (2)

1784-1801: Language-model API key update looks good – double-check optional/required interplay

Good job switching to OPENAI_API_KEY with load_from_db: true.
Because required is still false, an unset env-var silently yields an empty key and can surface only at runtime. If that’s intentional, ignore; otherwise consider keeping required: true to fail fast.


1-1: Verify no leftover api_key fields still use load_from_db: false

To ensure full coverage across starter projects, run:

#!/bin/bash
# Find api_key fields that weren’t flipped to load_from_db=true
rg -n '"name":\s*"api_key"' --json | jq -r '.data.path.text' | \
  while read -r file; do
    rg -n -A2 -B2 '"name":\s*"api_key"' "$file" | \
    grep -A1 '"load_from_db": false' && echo "⚠️  $file"
  done

You should expect no output. Any listed file still needs updating.

src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (2)

585-594: Confirm that the placeholder is resolved at runtime

load_from_db is now true and value is set to the literal string YOUTUBE_API_KEY.
Please double-check that the backend/template loader actually substitutes this literal with the real secret (env var / DB value). If the substitution layer is missing or mis-configured, the Google API client will end up receiving the string "YOUTUBE_API_KEY" and all requests will fail with 401s.


2926-2936: Same runtime-substitution caveat for LanguageModelComponent

As above, ensure that:

  1. A literal "OPENAI_API_KEY" never reaches the SDK.
  2. When the user flips provider to Anthropic / Google, the placeholder updates (or is ignored) accordingly.

A quick safeguard could be to raise a validation error if api_key still equals the provider-mismatched placeholder at build time.

src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json (3)

2466-2483: Creator component updated correctly

AssemblyAITranscriptionJobCreator now points to ASSEMBLY_API_KEY and persists the secret via load_from_db: true.
Good alignment with the PR objective.


3046-3063: OpenAI model component update looks good

LanguageModelComponent-cPCaH correctly switches to load_from_db: true with the OPENAI_API_KEY placeholder.


3340-3358: Duplicate OpenAI model component update looks good

Second LanguageModelComponent instance mirrors the same, no further action needed.

src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (2)

1687-1703: Consistent switch to global TAVILY_API_KEY looks good

load_from_db is enabled and the placeholder is now the env-style string, keeping secrets out of the template.
No functional, security, or UX concerns spotted here.


2940-2956: Duplicate adjustment for second LLM node – looks consistent

Change mirrors the previous LanguageModelComponent. No additional issues.

src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (2)

1291-1307: Confirm load_from_db=true, but double-check the required flag

Good to see the Tavily API key now resolved from the secrets store rather than hard-coding.
However, with "required": true the flow cannot be saved/run unless a secret named TAVILY_API_KEY already exists.
That is probably intended, but if the goal is to let users decide later, set "required": false.

No action needed if the strict requirement is deliberate.


2681-2697: Agent component: placeholder OK, but consider required vs secrets store

load_from_db is now true and "value": "OPENAI_API_KEY" which is fine.
Just make sure the secret name matches your secrets table exactly; otherwise the “required” flag will block execution.

No code change requested.

src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (1)

1596-1612: Switched Search API key to global placeholder – looks good

The field now

  1. sets load_from_db to true
  2. defaults to "SEARCHAPI_API_KEY"

This exactly matches the PR objective and removes hard-coded secrets inside the template.
No functional or security issues spotted.

Please double–check that SEARCHAPI_API_KEY is present in the platform’s env-var / secrets store so flows created from this template work out-of-the-box.

src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json (1)

1375-1392: API key field now auto-binds to stored secret – looks good

Flipping load_from_db to true and pre-filling "OPENAI_API_KEY" makes the component work out-of-the-box without exposing credentials. No issues spotted.

src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (4)

472-489: Check whether using "OPENAI_API_KEY" as a literal default may be misleading

Setting the default value to the literal placeholder string means this exact text will be persisted in the DB the first time the template is saved.
End-users who forget to replace it will silently send that placeholder downstream and hit authentication errors that are hard to diagnose.

-                "value": "OPENAI_API_KEY"
+                "value": ""

With load_from_db: true already in place, an empty default is enough – the component will still resolve the real key from the secrets table / env.
[ suggest_optional_refactor ][ request_verification ]


1023-1040: Apply the same placeholder-removal rationale here

Same comment as above for the “Analysis & Editor Agent”. Saving the literal placeholder makes debugging harder.

-                "value": "OPENAI_API_KEY"
+                "value": ""

[ suggest_optional_refactor ][ duplicate_comment ]


2404-2421: Ditto for “Researcher Agent”

For consistency (and to avoid persisting dummy data) the api_key.value should be left blank.

-                "value": "OPENAI_API_KEY"
+                "value": ""

[ suggest_optional_refactor ][ duplicate_comment ]


3291-3307: Good: added load_from_db; but re-evaluate default value

👍 Enabling load_from_db is the right move.
However, persisting "TAVILY_API_KEY" as the default may create the same confusion as with the OpenAI keys.

-                "value": "TAVILY_API_KEY"
+                "value": ""

If you still want to hint the expected env-var name in the UI, consider adding a placeholder instead of a persisted value.
[ suggest_optional_refactor ][ request_verification ]

Comment thread src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json Outdated
Comment thread src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json Outdated
Yukiyukiyeah and others added 3 commits June 26, 2025 10:55
…ng Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
…ng Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels Jun 26, 2025
@github-actions github-actions Bot added lgtm This PR has been approved by a maintainer bug Something isn't working and removed bug Something isn't working labels Jun 26, 2025
@erichare erichare self-requested a review June 26, 2025 18:09
@ogabrielluiz ogabrielluiz added the fast-track Skip tests and sends PR into the merge queue label Jun 26, 2025
@ogabrielluiz ogabrielluiz enabled auto-merge June 26, 2025 19:04
@ogabrielluiz ogabrielluiz added this pull request to the merge queue Jun 26, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 26, 2025
@Yukiyukiyeah Yukiyukiyeah added this pull request to the merge queue Jun 26, 2025
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels Jun 27, 2025
@erichare erichare enabled auto-merge June 27, 2025 04:03
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels Jun 27, 2025
@ogabrielluiz ogabrielluiz disabled auto-merge June 27, 2025 13:51
@ogabrielluiz ogabrielluiz enabled auto-merge June 27, 2025 13:51
@ogabrielluiz ogabrielluiz added lgtm This PR has been approved by a maintainer and removed lgtm This PR has been approved by a maintainer labels Jun 27, 2025
@ogabrielluiz ogabrielluiz added this pull request to the merge queue Jun 27, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jun 27, 2025
@edwinjosechittilappilly edwinjosechittilappilly added this pull request to the merge queue Jun 27, 2025
@mfortman11 mfortman11 removed this pull request from the merge queue due to a manual request Jun 27, 2025
@mfortman11 mfortman11 enabled auto-merge June 27, 2025 21:04
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels Jun 27, 2025
@mfortman11 mfortman11 added this pull request to the merge queue Jun 27, 2025
Merged via the queue into main with commit 13501a3 Jun 27, 2025
16 checks passed
@mfortman11 mfortman11 deleted the change-api-keys branch June 27, 2025 21:18
lucaseduoli pushed a commit that referenced this pull request Jul 1, 2025
* update templates api keys

* Update src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>

* Update src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>

* Update Text Sentiment Analysis.json

* cust comp test fix

---------

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
Khurdhula-Harshavardhan pushed a commit to JigsawStack/langflow that referenced this pull request Jul 1, 2025
* update templates api keys

* Update src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>

* Update src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>

* Update Text Sentiment Analysis.json

* cust comp test fix

---------

Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
@dosubot dosubot Bot mentioned this pull request Jul 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working fast-track Skip tests and sends PR into the merge queue lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants