[{"data":1,"prerenderedAt":965},["ShallowReactive",2],{"doc-sdks\u002Fpython":3,"content-query-yYKDVIr7q5":4},null,{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":8,"sidebar_position":10,"body":11,"_type":959,"_id":960,"_source":961,"_file":962,"_stem":963,"_extension":964},"\u002Fdocs\u002Fsdks\u002Fpython","sdks",false,"","Python SDK",2,{"type":12,"children":13,"toc":950},"root",[14,22,39,70,77,82,115,141,146,169,189,195,208,305,314,327,333,338,391,400,413,419,424,477,489,495,754,760,887,896,902,907,939,944],{"type":15,"tag":16,"props":17,"children":19},"element","h1",{"id":18},"python-sdk",[20],{"type":21,"value":9},"text",{"type":15,"tag":23,"props":24,"children":29},"div",{"className":25,"ariaHidden":28},[26,27],"docs-page-hero","docs-page-hero--sage","true",[30,32],{"type":21,"value":31},"\n  ",{"type":15,"tag":33,"props":34,"children":38},"img",{"src":35,"alt":8,"width":36,"height":37},"\u002Fimages\u002Fdocs-illustrations\u002Fsdks.svg",128,72,[],{"type":15,"tag":40,"props":41,"children":42},"p",{},[43,45,52,54,60,62,68],{"type":21,"value":44},"The local Python SDK package is named ",{"type":15,"tag":46,"props":47,"children":49},"code",{"className":48},[],[50],{"type":21,"value":51},"credvault-edge",{"type":21,"value":53}," and is version ",{"type":15,"tag":46,"props":55,"children":57},{"className":56},[],[58],{"type":21,"value":59},"1.0.0",{"type":21,"value":61},". It exposes a ",{"type":15,"tag":46,"props":63,"children":65},{"className":64},[],[66],{"type":21,"value":67},"CredVault",{"type":21,"value":69}," client for Python services, scripts, notebooks, and automation across the core CredVault APIs plus orchestration, lineage, metadata, notebooks, pipelines, dashboards, alerts, realtime streams, and agent sessions.",{"type":15,"tag":71,"props":72,"children":74},"h2",{"id":73},"installation",[75],{"type":21,"value":76},"Installation",{"type":15,"tag":40,"props":78,"children":79},{},[80],{"type":21,"value":81},"Install from the local wheel or source archive provided by CredVault:",{"type":15,"tag":83,"props":84,"children":88},"pre",{"className":85,"code":86,"language":87,"meta":8,"style":8},"language-bash shiki shiki-themes github-dark","pip install .\u002Fcredvault_edge-1.0.0-py3-none-any.whl\n","bash",[89],{"type":15,"tag":46,"props":90,"children":91},{"__ignoreMap":8},[92],{"type":15,"tag":93,"props":94,"children":97},"span",{"class":95,"line":96},"line",1,[98,104,110],{"type":15,"tag":93,"props":99,"children":101},{"style":100},"--shiki-default:#B392F0",[102],{"type":21,"value":103},"pip",{"type":15,"tag":93,"props":105,"children":107},{"style":106},"--shiki-default:#9ECBFF",[108],{"type":21,"value":109}," install",{"type":15,"tag":93,"props":111,"children":112},{"style":106},[113],{"type":21,"value":114}," .\u002Fcredvault_edge-1.0.0-py3-none-any.whl\n",{"type":15,"tag":40,"props":116,"children":117},{},[118,124,126,131,133,139],{"type":15,"tag":119,"props":120,"children":121},"strong",{},[122],{"type":21,"value":123},"What you should see:",{"type":21,"value":125}," pip should install ",{"type":15,"tag":46,"props":127,"children":129},{"className":128},[],[130],{"type":21,"value":51},{"type":21,"value":132}," into your current Python environment. After that, ",{"type":15,"tag":46,"props":134,"children":136},{"className":135},[],[137],{"type":21,"value":138},"from credvault import CredVault",{"type":21,"value":140}," should work.",{"type":15,"tag":40,"props":142,"children":143},{},[144],{"type":21,"value":145},"or:",{"type":15,"tag":83,"props":147,"children":149},{"className":85,"code":148,"language":87,"meta":8,"style":8},"pip install .\u002Fcredvault_edge-1.0.0.tar.gz\n",[150],{"type":15,"tag":46,"props":151,"children":152},{"__ignoreMap":8},[153],{"type":15,"tag":93,"props":154,"children":155},{"class":95,"line":96},[156,160,164],{"type":15,"tag":93,"props":157,"children":158},{"style":100},[159],{"type":21,"value":103},{"type":15,"tag":93,"props":161,"children":162},{"style":106},[163],{"type":21,"value":109},{"type":15,"tag":93,"props":165,"children":166},{"style":106},[167],{"type":21,"value":168}," .\u002Fcredvault_edge-1.0.0.tar.gz\n",{"type":15,"tag":40,"props":170,"children":171},{},[172,174,179,181,187],{"type":21,"value":173},"Use the local package file unless your organization has published ",{"type":15,"tag":46,"props":175,"children":177},{"className":176},[],[178],{"type":21,"value":51},{"type":21,"value":180}," to PyPI or a private Python package registry. The separate ",{"type":15,"tag":46,"props":182,"children":184},{"className":183},[],[185],{"type":21,"value":186},"credvault-cie",{"type":21,"value":188}," package is CIE tooling, not the full Python application SDK.",{"type":15,"tag":71,"props":190,"children":192},{"id":191},"connecting-to-credvault",[193],{"type":21,"value":194},"Connecting to CredVault",{"type":15,"tag":40,"props":196,"children":197},{},[198,200,206],{"type":21,"value":199},"The SDK defaults to ",{"type":15,"tag":46,"props":201,"children":203},{"className":202},[],[204],{"type":21,"value":205},"http:\u002F\u002Flocalhost:5000\u002Fapi",{"type":21,"value":207},", which is only for local backend development. Production code must pass the CredVault backend API URL.",{"type":15,"tag":83,"props":209,"children":213},{"className":210,"code":211,"language":212,"meta":8,"style":8},"language-python shiki shiki-themes github-dark","import os\nfrom credvault import CredVault\n\nclient = CredVault(\n    api_key=os.environ[\"CREDVAULT_API_KEY\"],\n    base_url=\"https:\u002F\u002F\u003Cyour-credvault-backend>\u002Fapi\",\n)\n\ncustomers = client.data.query(\"customers\", {\"status\": \"active\"})\nprint(customers)\n","python",[214],{"type":15,"tag":46,"props":215,"children":216},{"__ignoreMap":8},[217,225,233,243,252,261,270,279,287,296],{"type":15,"tag":93,"props":218,"children":219},{"class":95,"line":96},[220],{"type":15,"tag":93,"props":221,"children":222},{},[223],{"type":21,"value":224},"import os\n",{"type":15,"tag":93,"props":226,"children":227},{"class":95,"line":10},[228],{"type":15,"tag":93,"props":229,"children":230},{},[231],{"type":21,"value":232},"from credvault import CredVault\n",{"type":15,"tag":93,"props":234,"children":236},{"class":95,"line":235},3,[237],{"type":15,"tag":93,"props":238,"children":240},{"emptyLinePlaceholder":239},true,[241],{"type":21,"value":242},"\n",{"type":15,"tag":93,"props":244,"children":246},{"class":95,"line":245},4,[247],{"type":15,"tag":93,"props":248,"children":249},{},[250],{"type":21,"value":251},"client = CredVault(\n",{"type":15,"tag":93,"props":253,"children":255},{"class":95,"line":254},5,[256],{"type":15,"tag":93,"props":257,"children":258},{},[259],{"type":21,"value":260},"    api_key=os.environ[\"CREDVAULT_API_KEY\"],\n",{"type":15,"tag":93,"props":262,"children":264},{"class":95,"line":263},6,[265],{"type":15,"tag":93,"props":266,"children":267},{},[268],{"type":21,"value":269},"    base_url=\"https:\u002F\u002F\u003Cyour-credvault-backend>\u002Fapi\",\n",{"type":15,"tag":93,"props":271,"children":273},{"class":95,"line":272},7,[274],{"type":15,"tag":93,"props":275,"children":276},{},[277],{"type":21,"value":278},")\n",{"type":15,"tag":93,"props":280,"children":282},{"class":95,"line":281},8,[283],{"type":15,"tag":93,"props":284,"children":285},{"emptyLinePlaceholder":239},[286],{"type":21,"value":242},{"type":15,"tag":93,"props":288,"children":290},{"class":95,"line":289},9,[291],{"type":15,"tag":93,"props":292,"children":293},{},[294],{"type":21,"value":295},"customers = client.data.query(\"customers\", {\"status\": \"active\"})\n",{"type":15,"tag":93,"props":297,"children":299},{"class":95,"line":298},10,[300],{"type":15,"tag":93,"props":301,"children":302},{},[303],{"type":21,"value":304},"print(customers)\n",{"type":15,"tag":40,"props":306,"children":307},{},[308,312],{"type":15,"tag":119,"props":309,"children":310},{},[311],{"type":21,"value":123},{"type":21,"value":313}," a Python dictionary or list containing records returned by CredVault. If the API key is wrong, the SDK should raise a clear authentication error.",{"type":15,"tag":40,"props":315,"children":316},{},[317,319,325],{"type":21,"value":318},"Use API keys for server-to-server data routes such as ",{"type":15,"tag":46,"props":320,"children":322},{"className":321},[],[323],{"type":21,"value":324},"\u002Fapi\u002Fv1\u002Fdata",{"type":21,"value":326},". Use user tokens for routes that act like the dashboard, including clusters, functions, webhooks, logs, settings, and API-key management.",{"type":15,"tag":71,"props":328,"children":330},{"id":329},"working-with-data",[331],{"type":21,"value":332},"Working with Data",{"type":15,"tag":40,"props":334,"children":335},{},[336],{"type":21,"value":337},"The data resource supports cluster and collection operations.",{"type":15,"tag":83,"props":339,"children":341},{"className":210,"code":340,"language":212,"meta":8,"style":8},"customers = client.data.query(\"customers\", {\"status\": \"active\"})\n\ncreated = client.data.insert(\"customers\", {\n    \"name\": \"Acme Ltd\",\n    \"status\": \"active\",\n})\n",[342],{"type":15,"tag":46,"props":343,"children":344},{"__ignoreMap":8},[345,352,359,367,375,383],{"type":15,"tag":93,"props":346,"children":347},{"class":95,"line":96},[348],{"type":15,"tag":93,"props":349,"children":350},{},[351],{"type":21,"value":295},{"type":15,"tag":93,"props":353,"children":354},{"class":95,"line":10},[355],{"type":15,"tag":93,"props":356,"children":357},{"emptyLinePlaceholder":239},[358],{"type":21,"value":242},{"type":15,"tag":93,"props":360,"children":361},{"class":95,"line":235},[362],{"type":15,"tag":93,"props":363,"children":364},{},[365],{"type":21,"value":366},"created = client.data.insert(\"customers\", {\n",{"type":15,"tag":93,"props":368,"children":369},{"class":95,"line":245},[370],{"type":15,"tag":93,"props":371,"children":372},{},[373],{"type":21,"value":374},"    \"name\": \"Acme Ltd\",\n",{"type":15,"tag":93,"props":376,"children":377},{"class":95,"line":254},[378],{"type":15,"tag":93,"props":379,"children":380},{},[381],{"type":21,"value":382},"    \"status\": \"active\",\n",{"type":15,"tag":93,"props":384,"children":385},{"class":95,"line":263},[386],{"type":15,"tag":93,"props":387,"children":388},{},[389],{"type":21,"value":390},"})\n",{"type":15,"tag":40,"props":392,"children":393},{},[394,398],{"type":15,"tag":119,"props":395,"children":396},{},[397],{"type":21,"value":123},{"type":21,"value":399}," the query returns matching records, and the insert call returns the created document or document ID.",{"type":15,"tag":40,"props":401,"children":402},{},[403,405,411],{"type":21,"value":404},"Check ",{"type":15,"tag":46,"props":406,"children":408},{"className":407},[],[409],{"type":21,"value":410},"\u002Fapi-docs",{"type":21,"value":412}," on the backend for the exact request body accepted by each endpoint.",{"type":15,"tag":71,"props":414,"children":416},{"id":415},"cie",[417],{"type":21,"value":418},"CIE",{"type":15,"tag":40,"props":420,"children":421},{},[422],{"type":21,"value":423},"The CIE resource supports Intelligence Engine actions such as datasets, model training, and predictions.",{"type":15,"tag":83,"props":425,"children":427},{"className":210,"code":426,"language":212,"meta":8,"style":8},"models = client.cie.list_models()\n\nprediction = client.cie.predict(\"model-id\", {\n    \"amount\": 1200,\n    \"region\": \"emea\",\n})\n",[428],{"type":15,"tag":46,"props":429,"children":430},{"__ignoreMap":8},[431,439,446,454,462,470],{"type":15,"tag":93,"props":432,"children":433},{"class":95,"line":96},[434],{"type":15,"tag":93,"props":435,"children":436},{},[437],{"type":21,"value":438},"models = client.cie.list_models()\n",{"type":15,"tag":93,"props":440,"children":441},{"class":95,"line":10},[442],{"type":15,"tag":93,"props":443,"children":444},{"emptyLinePlaceholder":239},[445],{"type":21,"value":242},{"type":15,"tag":93,"props":447,"children":448},{"class":95,"line":235},[449],{"type":15,"tag":93,"props":450,"children":451},{},[452],{"type":21,"value":453},"prediction = client.cie.predict(\"model-id\", {\n",{"type":15,"tag":93,"props":455,"children":456},{"class":95,"line":245},[457],{"type":15,"tag":93,"props":458,"children":459},{},[460],{"type":21,"value":461},"    \"amount\": 1200,\n",{"type":15,"tag":93,"props":463,"children":464},{"class":95,"line":254},[465],{"type":15,"tag":93,"props":466,"children":467},{},[468],{"type":21,"value":469},"    \"region\": \"emea\",\n",{"type":15,"tag":93,"props":471,"children":472},{"class":95,"line":263},[473],{"type":15,"tag":93,"props":474,"children":475},{},[476],{"type":21,"value":390},{"type":15,"tag":40,"props":478,"children":479},{},[480,482,487],{"type":21,"value":481},"For command-line data work, users can also use the ",{"type":15,"tag":46,"props":483,"children":485},{"className":484},[],[486],{"type":21,"value":415},{"type":21,"value":488}," CLI.",{"type":15,"tag":71,"props":490,"children":492},{"id":491},"available-resources",[493],{"type":21,"value":494},"Available Resources",{"type":15,"tag":496,"props":497,"children":498},"ul",{},[499,511,522,532,543,554,565,576,587,598,609,620,636,647,658,669,680,691,702,713,732,743],{"type":15,"tag":500,"props":501,"children":502},"li",{},[503,509],{"type":15,"tag":46,"props":504,"children":506},{"className":505},[],[507],{"type":21,"value":508},"auth",{"type":21,"value":510}," for sign-in, sign-up, and profile calls",{"type":15,"tag":500,"props":512,"children":513},{},[514,520],{"type":15,"tag":46,"props":515,"children":517},{"className":516},[],[518],{"type":21,"value":519},"data",{"type":21,"value":521}," for clusters and collection data",{"type":15,"tag":500,"props":523,"children":524},{},[525,530],{"type":15,"tag":46,"props":526,"children":528},{"className":527},[],[529],{"type":21,"value":415},{"type":21,"value":531}," for datasets, models, and predictions",{"type":15,"tag":500,"props":533,"children":534},{},[535,541],{"type":15,"tag":46,"props":536,"children":538},{"className":537},[],[539],{"type":21,"value":540},"webhooks",{"type":21,"value":542}," for event delivery",{"type":15,"tag":500,"props":544,"children":545},{},[546,552],{"type":15,"tag":46,"props":547,"children":549},{"className":548},[],[550],{"type":21,"value":551},"functions",{"type":21,"value":553}," for serverless functions",{"type":15,"tag":500,"props":555,"children":556},{},[557,563],{"type":15,"tag":46,"props":558,"children":560},{"className":559},[],[561],{"type":21,"value":562},"triggers",{"type":21,"value":564}," for collection events",{"type":15,"tag":500,"props":566,"children":567},{},[568,574],{"type":15,"tag":46,"props":569,"children":571},{"className":570},[],[572],{"type":21,"value":573},"backups",{"type":21,"value":575}," for backup and restore",{"type":15,"tag":500,"props":577,"children":578},{},[579,585],{"type":15,"tag":46,"props":580,"children":582},{"className":581},[],[583],{"type":21,"value":584},"schema",{"type":21,"value":586}," for schema and indexes",{"type":15,"tag":500,"props":588,"children":589},{},[590,596],{"type":15,"tag":46,"props":591,"children":593},{"className":592},[],[594],{"type":21,"value":595},"api_keys",{"type":21,"value":597}," for API key management",{"type":15,"tag":500,"props":599,"children":600},{},[601,607],{"type":15,"tag":46,"props":602,"children":604},{"className":603},[],[605],{"type":21,"value":606},"metrics",{"type":21,"value":608}," for platform monitoring",{"type":15,"tag":500,"props":610,"children":611},{},[612,618],{"type":15,"tag":46,"props":613,"children":615},{"className":614},[],[616],{"type":21,"value":617},"logs",{"type":21,"value":619}," for activity and audit logs",{"type":15,"tag":500,"props":621,"children":622},{},[623,629,631],{"type":15,"tag":46,"props":624,"children":626},{"className":625},[],[627],{"type":21,"value":628},"notifications",{"type":21,"value":630}," for notifications; preference methods should be checked against ",{"type":15,"tag":46,"props":632,"children":634},{"className":633},[],[635],{"type":21,"value":410},{"type":15,"tag":500,"props":637,"children":638},{},[639,645],{"type":15,"tag":46,"props":640,"children":642},{"className":641},[],[643],{"type":21,"value":644},"settings",{"type":21,"value":646}," for account settings, but some methods still need backend route alignment",{"type":15,"tag":500,"props":648,"children":649},{},[650,656],{"type":15,"tag":46,"props":651,"children":653},{"className":652},[],[654],{"type":21,"value":655},"robots",{"type":21,"value":657}," for robot\u002Fdevice endpoints, but this area still needs route alignment before it is public-ready",{"type":15,"tag":500,"props":659,"children":660},{},[661,667],{"type":15,"tag":46,"props":662,"children":664},{"className":663},[],[665],{"type":21,"value":666},"orchestration",{"type":21,"value":668}," for jobs, runs, assets, sensors, schedules, and launching jobs",{"type":15,"tag":500,"props":670,"children":671},{},[672,678],{"type":15,"tag":46,"props":673,"children":675},{"className":674},[],[676],{"type":21,"value":677},"lineage",{"type":21,"value":679}," for namespaces, datasets, jobs, runs, versions, search, and lineage",{"type":15,"tag":500,"props":681,"children":682},{},[683,689],{"type":15,"tag":46,"props":684,"children":686},{"className":685},[],[687],{"type":21,"value":688},"metadata",{"type":21,"value":690}," for tables, databases, search, and lineage",{"type":15,"tag":500,"props":692,"children":693},{},[694,700],{"type":15,"tag":46,"props":695,"children":697},{"className":696},[],[698],{"type":21,"value":699},"notebooks",{"type":21,"value":701}," for notebook operations and code execution",{"type":15,"tag":500,"props":703,"children":704},{},[705,711],{"type":15,"tag":46,"props":706,"children":708},{"className":707},[],[709],{"type":21,"value":710},"pipelines",{"type":21,"value":712}," for creating, running, and inspecting pipelines",{"type":15,"tag":500,"props":714,"children":715},{},[716,722,724,730],{"type":15,"tag":46,"props":717,"children":719},{"className":718},[],[720],{"type":21,"value":721},"dashboards",{"type":21,"value":723}," and ",{"type":15,"tag":46,"props":725,"children":727},{"className":726},[],[728],{"type":21,"value":729},"alerts",{"type":21,"value":731}," for operational monitoring",{"type":15,"tag":500,"props":733,"children":734},{},[735,741],{"type":15,"tag":46,"props":736,"children":738},{"className":737},[],[739],{"type":21,"value":740},"realtime",{"type":21,"value":742}," for stream management and WebSocket stream URLs",{"type":15,"tag":500,"props":744,"children":745},{},[746,752],{"type":15,"tag":46,"props":747,"children":749},{"className":748},[],[750],{"type":21,"value":751},"agent_sessions",{"type":21,"value":753}," for authenticated agent session and event calls",{"type":15,"tag":71,"props":755,"children":757},{"id":756},"platform-integrations",[758],{"type":21,"value":759},"Platform Integrations",{"type":15,"tag":83,"props":761,"children":763},{"className":210,"code":762,"language":212,"meta":8,"style":8},"jobs = client.orchestration.list_jobs()\nclient.orchestration.run_job(\"daily_customer_refresh\")\n\nlineage = client.lineage.get_lineage(\n    node_id=\"dataset:customers\",\n    depth=3,\n    direction=\"DOWNSTREAM\",\n)\n\nmetadata = client.metadata.search(\"customers\")\n\npipeline_run = client.pipelines.run(\"pipeline-id\")\ndashboard_data = client.dashboards.data(\"dashboard-id\")\n\nclient.alerts.record_metric(\"alert-id\", 92.5)\n",[764],{"type":15,"tag":46,"props":765,"children":766},{"__ignoreMap":8},[767,775,783,790,798,806,814,822,829,836,844,852,861,870,878],{"type":15,"tag":93,"props":768,"children":769},{"class":95,"line":96},[770],{"type":15,"tag":93,"props":771,"children":772},{},[773],{"type":21,"value":774},"jobs = client.orchestration.list_jobs()\n",{"type":15,"tag":93,"props":776,"children":777},{"class":95,"line":10},[778],{"type":15,"tag":93,"props":779,"children":780},{},[781],{"type":21,"value":782},"client.orchestration.run_job(\"daily_customer_refresh\")\n",{"type":15,"tag":93,"props":784,"children":785},{"class":95,"line":235},[786],{"type":15,"tag":93,"props":787,"children":788},{"emptyLinePlaceholder":239},[789],{"type":21,"value":242},{"type":15,"tag":93,"props":791,"children":792},{"class":95,"line":245},[793],{"type":15,"tag":93,"props":794,"children":795},{},[796],{"type":21,"value":797},"lineage = client.lineage.get_lineage(\n",{"type":15,"tag":93,"props":799,"children":800},{"class":95,"line":254},[801],{"type":15,"tag":93,"props":802,"children":803},{},[804],{"type":21,"value":805},"    node_id=\"dataset:customers\",\n",{"type":15,"tag":93,"props":807,"children":808},{"class":95,"line":263},[809],{"type":15,"tag":93,"props":810,"children":811},{},[812],{"type":21,"value":813},"    depth=3,\n",{"type":15,"tag":93,"props":815,"children":816},{"class":95,"line":272},[817],{"type":15,"tag":93,"props":818,"children":819},{},[820],{"type":21,"value":821},"    direction=\"DOWNSTREAM\",\n",{"type":15,"tag":93,"props":823,"children":824},{"class":95,"line":281},[825],{"type":15,"tag":93,"props":826,"children":827},{},[828],{"type":21,"value":278},{"type":15,"tag":93,"props":830,"children":831},{"class":95,"line":289},[832],{"type":15,"tag":93,"props":833,"children":834},{"emptyLinePlaceholder":239},[835],{"type":21,"value":242},{"type":15,"tag":93,"props":837,"children":838},{"class":95,"line":298},[839],{"type":15,"tag":93,"props":840,"children":841},{},[842],{"type":21,"value":843},"metadata = client.metadata.search(\"customers\")\n",{"type":15,"tag":93,"props":845,"children":847},{"class":95,"line":846},11,[848],{"type":15,"tag":93,"props":849,"children":850},{"emptyLinePlaceholder":239},[851],{"type":21,"value":242},{"type":15,"tag":93,"props":853,"children":855},{"class":95,"line":854},12,[856],{"type":15,"tag":93,"props":857,"children":858},{},[859],{"type":21,"value":860},"pipeline_run = client.pipelines.run(\"pipeline-id\")\n",{"type":15,"tag":93,"props":862,"children":864},{"class":95,"line":863},13,[865],{"type":15,"tag":93,"props":866,"children":867},{},[868],{"type":21,"value":869},"dashboard_data = client.dashboards.data(\"dashboard-id\")\n",{"type":15,"tag":93,"props":871,"children":873},{"class":95,"line":872},14,[874],{"type":15,"tag":93,"props":875,"children":876},{"emptyLinePlaceholder":239},[877],{"type":21,"value":242},{"type":15,"tag":93,"props":879,"children":881},{"class":95,"line":880},15,[882],{"type":15,"tag":93,"props":883,"children":884},{},[885],{"type":21,"value":886},"client.alerts.record_metric(\"alert-id\", 92.5)\n",{"type":15,"tag":40,"props":888,"children":889},{},[890,894],{"type":15,"tag":119,"props":891,"children":892},{},[893],{"type":21,"value":123},{"type":21,"value":895}," each method returns the CredVault result for that resource, such as jobs, lineage, metadata matches, pipeline run status, dashboard data, or metric confirmation.",{"type":15,"tag":71,"props":897,"children":899},{"id":898},"security",[900],{"type":21,"value":901},"Security",{"type":15,"tag":40,"props":903,"children":904},{},[905],{"type":21,"value":906},"Keep API keys in environment variables:",{"type":15,"tag":83,"props":908,"children":910},{"className":85,"code":909,"language":87,"meta":8,"style":8},"export CREDVAULT_API_KEY=\"...\"\n",[911],{"type":15,"tag":46,"props":912,"children":913},{"__ignoreMap":8},[914],{"type":15,"tag":93,"props":915,"children":916},{"class":95,"line":96},[917,923,929,934],{"type":15,"tag":93,"props":918,"children":920},{"style":919},"--shiki-default:#F97583",[921],{"type":21,"value":922},"export",{"type":15,"tag":93,"props":924,"children":926},{"style":925},"--shiki-default:#E1E4E8",[927],{"type":21,"value":928}," CREDVAULT_API_KEY",{"type":15,"tag":93,"props":930,"children":931},{"style":919},[932],{"type":21,"value":933},"=",{"type":15,"tag":93,"props":935,"children":936},{"style":106},[937],{"type":21,"value":938},"\"...\"\n",{"type":15,"tag":40,"props":940,"children":941},{},[942],{"type":21,"value":943},"Do not store API keys in notebooks that will be shared or committed into source control.",{"type":15,"tag":945,"props":946,"children":947},"style",{},[948],{"type":21,"value":949},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":8,"searchDepth":10,"depth":10,"links":951},[952,953,954,955,956,957,958],{"id":73,"depth":10,"text":76},{"id":191,"depth":10,"text":194},{"id":329,"depth":10,"text":332},{"id":415,"depth":10,"text":418},{"id":491,"depth":10,"text":494},{"id":756,"depth":10,"text":759},{"id":898,"depth":10,"text":901},"markdown","content:docs:sdks:python.md","content","docs\u002Fsdks\u002Fpython.md","docs\u002Fsdks\u002Fpython","md",1794695981517]