Versionsinformationen

Neuheiten

  • Erweiterte JOIN-Anweisungen für Ausgaben

    Ergänzend zu den in Version 4.0 eingeführten JOIN-Anweisungen kommt hinzu: union_join_ref (s.a. Beispiel)

  • Eventlog-Ausgabe bzw. Suche über evlog.record.list

    Die Eventlog-Daten wurden bereits mit Inbetriebnahme der Version 4.0 neu strukturiert. Dadurch können die Daten ab Logdatum 1.10.2023 auch nach dem Vorkommen eines Parameternamens, -status oder -wertes durchsucht werden. Daten, die vor diesem Logdatum geschrieben wurden, können nur mittels RegExp durchsucht werden. Durch den neuen Parameter log_params_dict kann gezielt nach Parametertupeln (Name, Status, Wert bzw. RegExp eines Records) gesucht werden. Unabhängig davon kann mit den neuen Parametern log_param_fq_name, log_param_state, log_param_value, log_param_value_regexp record-übergreifend gesucht werden. Weitere Details zur Verwendung des Parameters log_params_dict sind in dessen Parameterbeschreibung hinterlegt.

  • Steuerung der Constraint-Validierung

    Deferrable Constraints können vor jedem Statement auf deferred und nach jedem Statement auf immediate gesetzt werden.

  • Abfrage veralteter Objektattribute/Parameter über wapi.function.list mit parameter_is_deprecated=true möglich.

Änderungen

  • Ausgabe von Objekten relational verbundener Objekttypen mit JOIN-Anweisungen:

    • Der Lesezugriff des Nachfolger-Statements wird nicht mehr automatisch in beide Richtungen übertragen, sondern es wird nach der JOIN-Richtung unterschieden:

      • Parent joins Child
      • Child joins Parent
    • aktuell ist diese Unterscheidung nur in den Constraints api_fkey_nd_l2p_port_l und api_fkey_nd_l2p_port_p aktiviert: Die Leserichtungen von nd.l2p_port nach nd.l_port und nd.p_port nach nd.l2p_port sind nicht freigegeben.

  • Zugangskonzept: strikte Trennung in administrative Rechte und operative Rechte (OE-Betreuer)

    • die bisherige implizite Rechteausübung als OE-Betreuer (operative Rechte entsprachen automatisch den administrativen Rechten) wird aufgehoben.
    • Um operative Rechte ausüben zu können, müssen auch OE-Betreuer in den entsprechenden Gruppen eingetragen sein. Dh. OE-Betreuer zu sein, reicht alleine nicht aus.
    • Diese Änderung gilt für alle WebAPI-Versionen.
  • Ausgabe der Rollen/Permissions (Hierarchieabfragen):

    • die Attribute

      • cntl.role.contained_permissions
      • cntl.role.contained_roles

      entfallen, da die Permission-Beschreibung als direktes Attribut auch nicht mehr verfügbar ist (und als Sprachattribut separat abgefragt werden muss).

    • das Attribut cntl.role.hierarchy_gfk_list ist stattdessen neu, wie auch die dazugehörigen Funktionsconstraints

      • api_func_cntl_role_hierarchy_gfk_list_is_intersection
      • api_func_cntl_role_hierarchy_gfk_list_is_subset
      • api_func_cntl_role_hierarchy_gfk_list_is_superset

      um enthaltene/enthaltende Rollen abzufragen. Die Modellierung ist analog anderer hierarchisch modellierter Objekttypen wie z.B. org.unit, nd.module.

  • Der folgende Constraint wurde umbenannt und gilt NICHT mehr in älteren WebAPI-Versionen (dh. nur ab 4.1):

    • Objekttyp nd.p_port:
      • api_func_nd_p_port_is_intersect_of_conn_node_set -> api_func_nd_p_port_is_contained_by_conn_id_gfk_list
  • Die folgenden Constraints haben ein geändertes Objettyp-Attribut, das erst seit 4.1 definiert ist (rr_chain_target_subnet_list -> rr_chain_target_subnet_gfk_list) und gelten deshalb gilt NICHT mehr in älteren WebAPI-Versionen (dh. nur ab 4.1):

    • Objekttyp dns.fqdn: api_func_dns_fqdn_rr_chain_target_contains_subnet
    • Objekttyp dns.record: api_func_dns_record_rr_chain_target_contains_subnet
  • Die folgenden Constraints wurden umbenannt und gelten in allen WebAPI-Versionen (dh. müssen ggf. auch dort angepasst werden, da Constraints nicht versionsbezogen sind):

    • Objekttyp dns.fqdn:

      • api_func_dns_fqdn_is_intersect_of_root_node_set -> api_func_dns_fqdn_hierarchy_gfk_list_is_intersection
      • api_func_dns_fqdn_is_subset_of_root_node_set -> api_func_dns_fqdn_hierarchy_gfk_list_is_subset
      • api_func_dns_fqdn_is_superset_of_root_node_set -> api_func_dns_fqdn_hierarchy_gfk_list_is_superset
    • Objekttyp nd.module:

      • api_func_nd_module_is_intersect_of_root_node_set -> api_func_nd_module_hierarchy_gfk_list_is_intersection
      • api_func_nd_module_is_subset_of_root_node_set -> api_func_nd_module_hierarchy_gfk_list_is_subset
      • api_func_nd_module_is_superset_of_root_node_set -> api_func_nd_module_hierarchy_gfk_list_is_superset
    • Objekttyp ndcfg.slot2module_type_tree:

      • api_func_ndcfg_st2mt_tree_is_intersect_of_root_node_set -> api_func_ndcfg_st2mt_tree_hierarchy_gfk_list_is_intersection
      • api_func_ndcfg_st2mt_tree_is_subset_of_root_node_set -> api_func_ndcfg_st2mt_tree_hierarchy_gfk_list_is_subset
      • api_func_ndcfg_st2mt_tree_is_superset_of_root_node_set -> api_func_ndcfg_st2mt_tree_hierarchy_gfk_list_is_superset
    • Objekttyp org.unit:

      • api_func_org_unit_is_intersect_of_root_node_set -> api_func_org_unit_hierarchy_gfk_list_is_intersection
      • api_func_org_unit_is_subset_of_root_node_set -> api_func_org_unit_hierarchy_gfk_list_is_subset
      • api_func_org_unit_is_superset_of_root_node_set -> api_func_org_unit_hierarchy_gfk_list_is_superset

Parameterumstellung (Skalarkontext -> Arraykontext)

  • Die folgenden Objekttypattribute sind für die Funktion list nur noch in der aktuellen Version 4.1 verwendbar (deprecated) und muessen ab Version 4.2 auf die Array-Kontext-Variante umgestellt werden (Parametername wird durch das Suffix _list ergänzt, Parameterwert muss als Array übergeben werden):

    • cntl.column.table_name
    • cntl.column_kvtab.column_name
    • cntl.column_kvtab.key
    • cntl.column_kvtab.table_name
    • cntl.constraint.name
    • cntl.constraint.table_name
    • cntl.data_type.name
    • cntl.data_type_operator.name
    • cntl.error.code
    • cntl.error.type
    • cntl.group.name
    • cntl.language.tag
    • cntl.mgr.login_name
    • cntl.ot_attr_def.key_word
    • cntl.ot_attr_def.object_type_fq_name
    • cntl.ot_attr_key.object_type_fq_name
    • cntl.ot_attr_key.ot_attr_def_key_word
    • cntl.ot_attr_key.ref_object_gfk
    • cntl.ot_lang_attr_def.key_word
    • cntl.ot_lang_attr_def.object_type_fq_name
    • cntl.replication.name
    • cntl.replication_pub2sub.publisher_fqdn
    • cntl.replication_pub2sub.replication_name
    • cntl.role2role.contained_role_fq_name
    • cntl.role2role.role_fq_name
    • cntl.system.name
    • cntl.table.name
    • dhcpcfg.dt2operator2dt.left_data_type
    • dhcpcfg.dt2operator2dt.operator
    • dhcpcfg.dt2operator2dt.right_data_type
    • dhcpcfg.operator.name
    • dhcpv4.global_option.code
    • dhcpv4.og.ip_subnet_cidr
    • dhcpv4.subnet_option.ip_subnet_cidr
    • dns.fqdn.value
    • dns.fqdn2group.fqdn_value
    • dns.fqdn2group.group_name
    • dns.fqdn2ou.fqdn_value
    • dns.fqdn2ou.ou_short_name
    • dns.record.data
    • dns.record.type
    • dns.zone.fqdn
    • dnscfg.ns_set.name
    • dnscfg.ns_set_host.host_fqdn
    • dnscfg.ns_set_host.ns_set_name
    • dnscfg.ns_set_member.ns_fqdn
    • dnscfg.ns_set_member.ns_set_name
    • dnscfg.record_type.name
    • macauth.client.mac_addr
    • nd.bcd.name
    • nd.bcd2ou.bcd_name
    • nd.bcd2ou.ou_short_name
    • nd.bldg.number
    • nd.device.fqdn
    • nd.diq_ta_entry.dev_fqdn
    • nd.diq_ta_entry.diq_ta_gfk
    • nd.floor.name
    • nd.ip_intf.dev_fqdn
    • nd.ip_intf.ip_addr
    • nd.ip_intf.l_port
    • nd.ip_subnet.cidr
    • nd.l_port.dev_fqdn
    • nd.l_port.name
    • nd.module.bldg
    • nd.module.fq_name
    • nd.module.room
    • nd.module2ap.mdl_fq_name
    • nd.module2device.dev_fqdn
    • nd.module2device.mdl_fq_name
    • nd.p_port.name
    • nd.room.bldg
    • nd.room.number
    • nd.site.fq_name
    • nd.slot.fq_name
    • nd.vlan.id
    • nd.vlan.net_instnc
    • nd.vxlan.vni
    • ndcfg.bcd_categ.name
    • ndcfg.bcd_seclvl.value
    • ndcfg.device_type.name
    • ndcfg.module2slot_type.module_type
    • ndcfg.module2slot_type.slot_type
    • ndcfg.module_type.name
    • ndcfg.module_type_class.name
    • ndcfg.net_cmpnd.name
    • ndcfg.net_cmpnd2instnc.net_cmpnd
    • ndcfg.net_cmpnd2instnc.net_instnc
    • ndcfg.net_instnc.name
    • ndcfg.parser.name
    • ndcfg.parser2sysdescr.sysdescr
    • ndcfg.p_port2module_type.module_type
    • ndcfg.p_port_type.name
    • ndcfg.p_port_type_group.name
    • ndcfg.site_type.short_name
    • ndcfg.site_type2type.child_short_name
    • ndcfg.site_type2type.parent_short_name
    • ndcfg.slot2module_type.module_type
    • ndcfg.slot2module_type.slot_type
    • ndcfg.slot2module_type_tree.module_type
    • ndcfg.slot2module_type_tree.slot_type
    • ndcfg.slot_type_class.name
    • nm.access_group.name
    • org.unit.short_name