Skip to content

Commit 095a905

Browse files
authored
Merge branch 'fluent:master' into out-syslog-nested-key-support
2 parents ebe250e + 6345fd1 commit 095a905

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+6045
-1142
lines changed

.github/workflows/staging-release.yaml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -831,9 +831,20 @@ jobs:
831831
target_commitish: '3.2'
832832
make_latest: false
833833

834-
- name: Release 4.0 and latest
834+
- name: Release 4.0 - not latest
835835
uses: softprops/action-gh-release@v2
836836
if: startsWith(inputs.version, '4.0')
837+
with:
838+
body: "https://fluentbit.io/announcements/v${{ inputs.version }}/"
839+
draft: false
840+
generate_release_notes: true
841+
name: "Fluent Bit ${{ inputs.version }}"
842+
tag_name: v${{ inputs.version }}
843+
make_latest: false
844+
845+
- name: Release 4.1 and latest
846+
uses: softprops/action-gh-release@v2
847+
if: startsWith(inputs.version, '4.1')
837848
with:
838849
body: "https://fluentbit.io/announcements/v${{ inputs.version }}/"
839850
draft: false
@@ -950,12 +961,20 @@ jobs:
950961
token: ${{ secrets.GH_PA_TOKEN }}
951962
ref: 3.2
952963

953-
- name: Release 4.0 and latest
964+
- name: Release 4.0 - not latest
954965
if: startsWith(inputs.version, '4.0')
955966
uses: actions/checkout@v5
956967
with:
957968
repository: fluent/fluent-bit-docs
958969
token: ${{ secrets.GH_PA_TOKEN }}
970+
ref: '4.0'
971+
972+
- name: Release 4.1 and latest
973+
if: startsWith(inputs.version, '4.1')
974+
uses: actions/checkout@v5
975+
with:
976+
repository: fluent/fluent-bit-docs
977+
token: ${{ secrets.GH_PA_TOKEN }}
959978

960979
- name: Ensure we have the script we need
961980
run: |
@@ -1052,7 +1071,7 @@ jobs:
10521071
if: startsWith(inputs.version, '4.0')
10531072
uses: actions/checkout@v5
10541073
with:
1055-
ref: 4.0
1074+
ref: '4.0'
10561075

10571076
- name: Release 4.1
10581077
if: startsWith(inputs.version, '4.1')

.github/workflows/unit-tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ on:
2222
- 'examples/**'
2323
branches:
2424
- master
25+
- 4.1
2526
- 4.0
2627
- 3.2
2728
- 3.1

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
77

88
# Fluent Bit Version
99
set(FLB_VERSION_MAJOR 4)
10-
set(FLB_VERSION_MINOR 1)
11-
set(FLB_VERSION_PATCH 2)
10+
set(FLB_VERSION_MINOR 2)
11+
set(FLB_VERSION_PATCH 0)
1212
set(FLB_VERSION_STR "${FLB_VERSION_MAJOR}.${FLB_VERSION_MINOR}.${FLB_VERSION_PATCH}")
1313

1414
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

SECURITY.md

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,61 @@
1-
# Security Policy
1+
# 🔒 Security Policy
2+
3+
Fluent Bit maintains active security support for a limited set of release lines. Security updates are provided for the versions listed below until their End-of-Maintenance (EOM) dates.
24

35
## Supported Versions
46

7+
| Version | Status | Security Updates Until |
8+
|-----------|------------|------------------------|
9+
| **4.2.x** | ✅ Active | **June 30, 2026** |
10+
| **4.1.x** | ✅ Active | **March 31, 2026** |
11+
| **4.0.x** | ✅ Active | **December 31, 2025** |
12+
| **3.2.x** | ❌ EOL ||
13+
| **< 3.2** | ❌ EOL ||
14+
15+
> **Note:** 3.2 and earlier are End-of-Life (EOL) and receive no further fixes.
16+
17+
---
18+
19+
## Maintenance & Backport Policy
20+
21+
- We backport **critical** and **high-severity** security fixes to all **Active** branches listed above.
22+
- Medium/low-severity fixes may be backported at the maintainers’ discretion.
23+
- After a branch reaches **EOM**, no further patches are published for that line.
24+
- Users are strongly encouraged to keep current with the latest **4.x** release line.
25+
26+
---
27+
28+
## 📣 Reporting a Vulnerability
29+
30+
Please report suspected vulnerabilities **privately**:
31+
32+
- Email: **fluentbit-security@googlegroups.com**
33+
- Include: affected versions, environment, clear reproduction steps, logs/traces, and impact assessment if known.
34+
35+
**Please do not** file public GitHub issues for security reports.
36+
37+
**Response targets** (best effort):
38+
- **Acknowledgement:** within 72 hours
39+
- **Initial assessment:** within 7 days
40+
- **Fix/Advisory:** coordinated with reporter; timing depends on severity and scope
41+
42+
---
43+
44+
## 🔐 Coordinated Disclosure
45+
46+
- We work with reporters to validate issues, develop fixes, and publish coordinated advisories.
47+
- Public disclosure occurs once a fix or acceptable mitigation is available, or by mutual agreement.
48+
49+
---
550

6-
| Version | Supported |
7-
|---------| ------------------ |
8-
| 4.0.x | :white_check_mark: |
9-
| 3.2.x | :white_check_mark: |
10-
| < 3.2 | :x: |
51+
## 📢 Security Announcements
1152

12-
## Reporting a Vulnerability
53+
- Security advisories and related notices are shared via:
54+
- GitHub **Security Advisories** on the Fluent Bit repo
55+
- GitHub **Discussions**: <https://github.com/fluent/fluent-bit/discussions>
1356

14-
Please get in touch with the team at fluentbit-security@googlegroups.com, and we'll take it from there.
15-
Thank you in advance for helping to keep Fluent-bit secure.
57+
For third-party CVEs that may impact Fluent Bit, we will post an assessment and any required guidance through the channels above.
1658

17-
## Announcements
59+
---
1860

19-
For related CVEs that may or not affect Fluent Bit we'll be doing the corresponding announcement through [discussions](https://github.com/fluent/fluent-bit/discussions).
61+
_Last updated: October 17, 2025_

fluent-bit-4.1.2.bb renamed to fluent-bit-4.2.0.bb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
1616
SECTION = "net"
1717

1818
PR = "r0"
19-
PV = "4.1.2"
19+
PV = "4.2.0"
2020

2121
SRCREV = "v${PV}"
2222
SRC_URI = "git://github.com/fluent/fluent-bit.git;nobranch=1"

include/fluent-bit/config_format/flb_cf.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ struct cfl_variant *flb_cf_section_property_add(struct flb_cf *cf,
174174
char *k_buf, size_t k_len,
175175
char *v_buf, size_t v_len);
176176

177+
struct cfl_variant *flb_cf_section_property_add_variant(struct flb_cf *cf,
178+
struct cfl_kvlist *kv_list,
179+
char *k_buf, size_t k_len,
180+
struct cfl_variant *variant);
181+
177182
struct cfl_array *flb_cf_section_property_add_list(struct flb_cf *cf,
178183
struct cfl_kvlist *kv_list,
179184
char *k_buf, size_t k_len);

include/fluent-bit/flb_config.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <fluent-bit/flb_log.h>
2828
#include <fluent-bit/flb_sds.h>
2929
#include <fluent-bit/flb_task_map.h>
30+
#include <cfl/cfl.h>
3031

3132
#include <monkey/mk_core.h>
3233

@@ -325,6 +326,9 @@ struct flb_config {
325326
int json_escape_unicode;
326327

327328
int dry_run;
329+
330+
/* New Router Configuration */
331+
struct cfl_list input_routes;
328332
};
329333

330334
#define FLB_CONFIG_LOG_LEVEL(c) (c->log->level)

include/fluent-bit/flb_mp_chunk.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ struct flb_mp_chunk_record {
3636
struct flb_log_event event;
3737
struct cfl_object *cobj_metadata;
3838
struct cfl_object *cobj_record;
39+
struct cfl_object *cobj_group_metadata;
40+
struct cfl_object *cobj_group_attributes;
41+
int owns_group_metadata;
42+
int owns_group_attributes;
3943
struct cfl_list _head;
4044
};
4145

@@ -47,6 +51,9 @@ struct flb_mp_chunk_cobj {
4751
struct flb_mp_chunk_record *record_pos;
4852
struct cfl_list records;
4953

54+
struct cfl_object *active_group_metadata;
55+
struct cfl_object *active_group_attributes;
56+
5057
/* Condition for filtering records during processing */
5158
struct flb_condition *condition;
5259
};

include/fluent-bit/flb_opentelemetry.h

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@
2424
#include <msgpack.h>
2525
#include <stdint.h>
2626

27-
/* Error code values from flb_opentelemetry_logs.c */
27+
/* Error code values from flb_opentelemetry logs/traces helpers */
2828
#define FLB_OTEL_LOGS_ERR_GENERIC_ERROR -1
29+
#define FLB_OTEL_TRACES_ERR_GENERIC_ERROR -1
2930

3031
enum {
3132

@@ -50,7 +51,31 @@ enum {
5051
FLB_OTEL_LOGS_ERR_ENCODER_FAILURE,
5152
FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE,
5253
FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID,
53-
FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID
54+
FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID,
55+
56+
/* trace specific errors */
57+
FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE,
58+
FLB_OTEL_TRACES_ERR_INVALID_JSON,
59+
FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING,
60+
FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE,
61+
FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE,
62+
FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING,
63+
FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE,
64+
FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE,
65+
FLB_OTEL_TRACES_ERR_SPANS_MISSING,
66+
FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE,
67+
FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE,
68+
FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING,
69+
FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES,
70+
FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID,
71+
FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID,
72+
FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID,
73+
FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY,
74+
FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP,
75+
FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY,
76+
FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID,
77+
FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID,
78+
FLB_OTEL_TRACES_ERR_STATUS_FAILURE
5479
};
5580

5681

@@ -88,7 +113,31 @@ static struct flb_otel_error_map otel_error_map[] = {
88113
{"FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE", FLB_OTEL_LOGS_ERR_APPEND_BODY_FAILURE},
89114
{"FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID", FLB_OTEL_LOGS_ERR_INVALID_TRACE_ID},
90115
{"FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID", FLB_OTEL_LOGS_ERR_INVALID_SPAN_ID},
116+
117+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_ROOT_OBJECT_TYPE},
118+
{"FLB_OTEL_TRACES_ERR_INVALID_JSON", FLB_OTEL_TRACES_ERR_INVALID_JSON},
119+
{"FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING", FLB_OTEL_TRACES_ERR_RESOURCE_SPANS_MISSING},
120+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_TYPE},
121+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_RESOURCE_SPANS_ENTRY_TYPE},
122+
{"FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING", FLB_OTEL_TRACES_ERR_SCOPE_SPANS_MISSING},
123+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_TYPE},
124+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE",FLB_OTEL_TRACES_ERR_UNEXPECTED_SCOPE_SPANS_ENTRY_TYPE},
125+
{"FLB_OTEL_TRACES_ERR_SPANS_MISSING", FLB_OTEL_TRACES_ERR_SPANS_MISSING},
126+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_SPANS_TYPE},
127+
{"FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE", FLB_OTEL_TRACES_ERR_UNEXPECTED_SPAN_ENTRY_TYPE},
128+
{"FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING", FLB_OTEL_TRACES_ERR_SPAN_NAME_MISSING},
129+
{"FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES", FLB_OTEL_TRACES_ERR_INVALID_ATTRIBUTES},
130+
{"FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID", FLB_OTEL_TRACES_ERR_INVALID_TRACE_ID},
131+
{"FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID", FLB_OTEL_TRACES_ERR_INVALID_SPAN_ID},
132+
{"FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID", FLB_OTEL_TRACES_ERR_INVALID_PARENT_SPAN_ID},
133+
{"FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY", FLB_OTEL_TRACES_ERR_INVALID_EVENT_ENTRY},
134+
{"FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP", FLB_OTEL_TRACES_ERR_INVALID_EVENT_TIMESTAMP},
135+
{"FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY", FLB_OTEL_TRACES_ERR_INVALID_LINK_ENTRY},
136+
{"FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID", FLB_OTEL_TRACES_ERR_INVALID_LINK_TRACE_ID},
137+
{"FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID", FLB_OTEL_TRACES_ERR_INVALID_LINK_SPAN_ID},
138+
{"FLB_OTEL_TRACES_ERR_STATUS_FAILURE", FLB_OTEL_TRACES_ERR_STATUS_FAILURE},
91139
{"GENERIC_ERROR", FLB_OTEL_LOGS_ERR_GENERIC_ERROR},
140+
{"FLB_OTEL_TRACES_ERR_GENERIC_ERROR", FLB_OTEL_TRACES_ERR_GENERIC_ERROR},
92141

93142
/* ---- */
94143
{"FLB_OTEL_LOGS_ERR_EMPTY_PAYLOAD", FLB_OTEL_LOGS_ERR_EMPTY_PAYLOAD},
@@ -124,6 +173,9 @@ int flb_opentelemetry_logs_json_to_msgpack(struct flb_log_event_encoder *encoder
124173
const char *logs_body_key,
125174
int *error_status);
126175

176+
struct ctrace *flb_opentelemetry_json_traces_to_ctrace(const char *body, size_t len,
177+
int *error_status);
178+
127179
/* OpenTelemetry utils */
128180
int flb_otel_utils_find_map_entry_by_key(msgpack_object_map *map,
129181
char *key,

0 commit comments

Comments
 (0)