Skip to content
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
762fd7f
[ffe] integrate datadog-ffe
dd-oleksii Oct 31, 2025
abcc896
Merge branch 'main' into datadog-ffe
avara1986 Oct 31, 2025
20450c9
integrate bindings
avara1986 Oct 31, 2025
59c80b2
integrate bindings
avara1986 Oct 31, 2025
399838d
integrate bindings
avara1986 Oct 31, 2025
c4194f9
update json structure
avara1986 Oct 31, 2025
dee6609
update json structure
avara1986 Oct 31, 2025
c6ebbe6
update json structure
avara1986 Oct 31, 2025
7fbff1c
[ffe] add missing allocation_key
dd-oleksii Oct 31, 2025
1a8aa43
remove extra-checks from python wrapper
avara1986 Nov 3, 2025
06d77d8
add tests and fix binding
avara1986 Nov 3, 2025
dd1f5c1
add tests and fix binding
avara1986 Nov 3, 2025
5524658
codestyle
avara1986 Nov 3, 2025
3b70555
add more tests, rollback system tests
avara1986 Nov 3, 2025
1925754
add more tests, rollback system tests
avara1986 Nov 3, 2025
c4db57e
Merge branch 'main' into datadog-ffe
avara1986 Nov 3, 2025
8edfa4f
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii Nov 5, 2025
439a02b
adapt to changes in datadog-ffe
dd-oleksii Nov 5, 2025
0370f44
adapt to latest datadog-ffe changes
dd-oleksii Nov 7, 2025
ee2ecfc
Merge main@origin into HEAD
dd-oleksii Nov 7, 2025
fd804e6
chore(native): bump libdatadog to v24.0.0
dd-oleksii Nov 12, 2025
bbf0736
Merge oleksii/libdatadog-24.0.0
dd-oleksii Nov 12, 2025
b8b6671
add cache to exposure
avara1986 Nov 12, 2025
64051a5
ci(iast): fix flakyness (#15210)
avara1986 Nov 13, 2025
042b61a
chore(native): bump libdatadog to v24.0.0 (#15219)
dd-oleksii Nov 13, 2025
b0d959c
Merge branch '3.19' into datadog-ffe
avara1986 Nov 13, 2025
ab12dbd
Merge branch 'main' into datadog-ffe
avara1986 Nov 13, 2025
920be96
Merge branch 'main' into datadog-ffe
avara1986 Nov 14, 2025
fb91010
Merge branch 'main' into datadog-ffe
avara1986 Nov 14, 2025
11d9fe8
Merge branch 'main' into datadog-ffe
avara1986 Nov 14, 2025
390eda6
release note
avara1986 Nov 14, 2025
cf7097c
Merge branch 'main' into datadog-ffe
avara1986 Nov 14, 2025
372a697
Merge branch 'main' into datadog-ffe
emmettbutler Nov 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .riot/requirements/104618a.txt

This file was deleted.

21 changes: 0 additions & 21 deletions .riot/requirements/1346280.txt

This file was deleted.

26 changes: 0 additions & 26 deletions .riot/requirements/183bf88.txt

This file was deleted.

21 changes: 0 additions & 21 deletions .riot/requirements/1d5d90b.txt

This file was deleted.

21 changes: 0 additions & 21 deletions .riot/requirements/68eb9ac.txt

This file was deleted.

24 changes: 0 additions & 24 deletions .riot/requirements/db50e43.txt

This file was deleted.

2 changes: 1 addition & 1 deletion ddtrace/internal/native/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from ._native import SerializationError # noqa: F401
from ._native import TraceExporter # noqa: F401
from ._native import TraceExporterBuilder # noqa: F401
from ._native import ffande_process_config # noqa: F401
from ._native import ffe # noqa: F401
from ._native import logger # noqa: F401
from ._native import store_metadata # noqa: F401

Expand Down
62 changes: 55 additions & 7 deletions ddtrace/internal/native/_native.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Dict, List, Literal, Optional
from typing import Dict, List, Literal, Optional, Any
from enum import Enum

class DDSketch:
def __init__(self): ...
Expand Down Expand Up @@ -447,11 +448,58 @@ class SerializationError(Exception):

...

def ffande_process_config(config_bytes: bytes) -> Optional[bool]:
class ffe:
"""
Process feature flagging and experimentation configuration rules.

:param config_bytes: Raw bytes containing the configuration data
:return: True if processing was successful, False otherwise, None on error
Native Feature Flags and Experimentation module.
"""
...

class FlagType(Enum):
String = ...
Integer = ...
Float = ...
Boolean = ...
Object = ...

class Reason(Enum):
Static = ...
Default = ...
TargetingMatch = ...
Split = ...
Cached = ...
Disabled = ...
Unknown = ...
Stale = ...
Error = ...

class ErrorCode(Enum):
TypeMismatch = ...
ParseError = ...
FlagNotFound = ...
TargetingKeyMissing = ...
InvalidContext = ...
ProviderNotReady = ...
General = ...

class ResolutionDetails:
@property
def value(self) -> Optional[Any]: ...
@property
def error_code(self) -> Optional[ffe.ErrorCode]: ...
@property
def error_message(self) -> Optional[str]: ...
@property
def reason(self) -> Optional[ffe.Reason]: ...
@property
def variant(self) -> Optional[str]: ...
@property
def allocation_key(self) -> Optional[str]: ...
@property
def flag_metadata(self) -> dict[str, str]: ...
@property
def do_log(self) -> bool: ...
@property
def extra_logging(self) -> Optional[dict[str, str]]: ...

class Configuration:
def __init__(self, config_bytes: bytes) -> None: ...
def resolve_value(self, flag_key: str, expected_type: ffe.FlagType, context: dict) -> ffe.ResolutionDetails: ...
14 changes: 8 additions & 6 deletions ddtrace/internal/openfeature/_config.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
from typing import Mapping
from typing import Optional

from ddtrace.internal.native._native import ffe

FFE_CONFIG: Mapping = {}

FFE_CONFIG: Optional[ffe.Configuration] = None


def _get_ffe_config():
"""Retrieve the current IAST context identifier from the ContextVar."""
"""Retrieve the current FFE configuration."""
return FFE_CONFIG


def _set_ffe_config(data):
def _set_ffe_config(config):
"""Set the FFE configuration."""
global FFE_CONFIG
"""Retrieve the current IAST context identifier from the ContextVar."""
FFE_CONFIG = data
FFE_CONFIG = config
128 changes: 0 additions & 128 deletions ddtrace/internal/openfeature/_ffe_mock.py

This file was deleted.

Loading
Loading