microsoftgraph / microsoftgraph/msgraph-beta-sdk-python
sign_ins.get does not support the filter properties from Docs
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 44
- Fork
- 16
- Merge trung bình
- 20 giờ 39 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
Describe the bug
When attempting to get nonInteractiveUser and servicePrincipal sign-ins, we receive one the following error messages when we try to use the filter properties defined in the Official MSgraph Beta API documentation.
"Invalid filter clause: Could not find a property named 'servicePrincipalId' on type 'microsoft.graph.signIn'."
Invalid filter clause: Could not find a property named 'signInEventTypes' on type 'microsoft.graph.signIn'.", target=None)
Here are some example filters we have tried
filter_query = f"createdDateTime ge {start_time_str} and createdDateTime le {end_time_str} and signInEventTypes/any(t: t eq 'nonInteractiveUser' or t eq 'servicePrincipal')"
filter_query = "signInEventTypes/any(t: t eq 'nonInteractiveUser' or t eq 'servicePrincipal')"
filter_query = f"servicePrincipalId eq '{id}'"
Notes:
- This exact same code works fine via the Python Beta SDK if we only include the
createdDateTimeproperties in the filter - This exact same filter (including
signInEventTypes/anyproperty) works fine when used via the MSGraph Beta API over HTTP
Questions
- I understand this is a beta, but should we expect the Python SDK to behave differently from the Beta Docs and the Beta HTTP API?
Expected behavior
- The python beta SDK would support the same filter properties as documented in the MSGraph Beta API documentation
- The python beta SDK would support the same filter properties as the MSGraph Beta HTTP API
How to reproduce
import asyncio
import os
from azure.identity import InteractiveBrowserCredential
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.audit_logs.sign_ins.sign_ins_request_builder import (
SignInsRequestBuilder,
)
AZURE_TENANT_ID = os.environ.get("AZURE_TENANT_ID")
CERT = os.environ.get("CERT_PATH")
async def get_sign_ins(client):
"""Get sign-ins with SDK"""
filter_query = (
"signInEventTypes/any(t: t eq 'nonInteractiveUser' or t eq 'servicePrincipal')"
)
query_params = SignInsRequestBuilder.SignInsRequestBuilderGetQueryParameters(
filter=filter_query,
top=1,
)
request_configuration = RequestConfiguration(
query_parameters=query_params,
)
result = await client.audit_logs.sign_ins.get(
request_configuration=request_configuration
)
return result.value
async def main():
"""Main async function to process sign-ins"""
credential = InteractiveBrowserCredential(
tenant_id=AZURE_TENANT_ID, connection_verify=CERT
)
client = GraphServiceClient(
credential,
scopes=["https://graph.microsoft.com/.default"],
)
result = await get_sign_ins(client)
print(result)
if __name__ == "__main__":
asyncio.run(main())
SDK Version
1.31.0
Latest version known to work for scenario above?
No response
Known Workarounds
Use HTTP to hit beta API via python requests library
Debug output
"Invalid filter clause: Could not find a property named 'signInEventTypes' on type 'microsoft.graph.signIn'."
Configuration
- OS: macOS Sequoia 15.3.1
- Architecture: M1 ARM
Other information
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với entry point được tạo audit_logs/sign_ins/sign_ins_request_builder.py được SignInsRequestBuilder sử dụng và kiểm tra cách GET request xây dựng truy vấn bộ lọc. So sánh SDK request với HTTP request beta được ghi nhận trong tài liệu bằng các bộ lọc tái hiện. Hoàn thành khi các bộ lọc signInEventTypes và servicePrincipalId được chấp nhận thông qua Python SDK.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- api
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100