mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-10-31 02:37:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import logging
 | |
| 
 | |
| from datahub.emitter.mcp import MetadataChangeProposalWrapper
 | |
| from datahub.emitter.rest_emitter import DatahubRestEmitter
 | |
| 
 | |
| # Imports for metadata model classes
 | |
| from datahub.metadata.schema_classes import (
 | |
|     FormActorAssignmentClass,
 | |
|     FormInfoClass,
 | |
|     FormPromptClass,
 | |
|     FormPromptTypeClass,
 | |
|     FormTypeClass,
 | |
|     StructuredPropertyParamsClass,
 | |
| )
 | |
| from datahub.metadata.urns import FormUrn
 | |
| 
 | |
| log = logging.getLogger(__name__)
 | |
| logging.basicConfig(level=logging.INFO)
 | |
| 
 | |
| # define the prompts for our form
 | |
| prompt_1 = FormPromptClass(
 | |
|     id="1",  # ensure IDs are globally unique
 | |
|     title="First Prompt",
 | |
|     type=FormPromptTypeClass.STRUCTURED_PROPERTY,  # structured property type prompt
 | |
|     structuredPropertyParams=StructuredPropertyParamsClass(
 | |
|         urn="urn:li:structuredProperty:property1"
 | |
|     ),  # reference existing structured property
 | |
|     required=True,
 | |
| )
 | |
| prompt_2 = FormPromptClass(
 | |
|     id="2",  # ensure IDs are globally unique
 | |
|     title="Second Prompt",
 | |
|     type=FormPromptTypeClass.FIELDS_STRUCTURED_PROPERTY,  # structured property prompt on dataset schema fields
 | |
|     structuredPropertyParams=StructuredPropertyParamsClass(
 | |
|         urn="urn:li:structuredProperty:property1"
 | |
|     ),
 | |
|     required=False,  # dataset schema fields prompts should not be required
 | |
| )
 | |
| 
 | |
| form_urn = FormUrn("metadata_initiative_1")
 | |
| form_info_aspect = FormInfoClass(
 | |
|     name="Metadata Initiative 2024",
 | |
|     description="Please respond to this form for metadata compliance purposes",
 | |
|     type=FormTypeClass.VERIFICATION,
 | |
|     actors=FormActorAssignmentClass(owners=True),
 | |
|     prompts=[prompt_1, prompt_2],
 | |
| )
 | |
| 
 | |
| event: MetadataChangeProposalWrapper = MetadataChangeProposalWrapper(
 | |
|     entityUrn=str(form_urn),
 | |
|     aspect=form_info_aspect,
 | |
| )
 | |
| 
 | |
| # Create rest emitter
 | |
| rest_emitter = DatahubRestEmitter(gms_server="http://localhost:8080")
 | |
| rest_emitter.emit(event)
 | 
