diff --git a/src/app/repository/repository.component.ts b/src/app/repository/repository.component.ts
index 8c56129da2c9756073eb60312d7e53933e37374d..a72b69a1fbc4a9bd66e4a029a9e9de2a5a7a9458 100644
--- a/src/app/repository/repository.component.ts
+++ b/src/app/repository/repository.component.ts
@@ -137,6 +137,7 @@ repository:\n\
     dct:description "'+ this.Form.value.repodescription + '";\n\
     dct:hasVersion "'+ this.Form.value.repoversion + '";\n\
     dct:isPartOf <' + this.persistentUrl + '>;\n\
+    dct:publisher [ a foaf:Agent; foaf:name " +this.Form.value.reponame + " ]; \n\
     dcat:keyword "'+ this.Form.value.repotype + '";\n\
     dct:title "'+ this.Form.value.reponame + '";\n\
     foaf:homepage <' + this.Form.value.repourl + '>;\n\
diff --git a/src/app/repository/services/publish-repository.service.ts b/src/app/repository/services/publish-repository.service.ts
index ad49bad8178b4c8d727ad35629eefb660f62a03e..8e47736d5167c25ebfb2ea1b6cce9dfd6bdaca24 100644
--- a/src/app/repository/services/publish-repository.service.ts
+++ b/src/app/repository/services/publish-repository.service.ts
@@ -1,4 +1,4 @@
-import { HttpClient } from '@angular/common/http';
+import { HttpClient, HttpHeaders } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { Observable } from 'rxjs';
 import { AppConfiguration } from 'src/app/AppConfiguration';
@@ -43,15 +43,30 @@ export class PublishRepositoryService {
 
       const response = await fetch(myRequest, myInit);
       const id = await response.headers.get("location");
-      
+      const url = id
       const catId = id.substring(id.search("catalog/") + 8, id.length);
       console.log('catalog creaetd with fdp / id = ' + catId);
+      this.publishMetadata(url);
       return this.addUserCatalog(catId);
     }
 
     return null;
   }
 
+  async publishMetadata(url: string) {
+    if (this.fds2Token) {
+      const httpOptions = {
+        headers: new HttpHeaders({
+          'Content-Type': 'application/json',
+          'Accept': 'application/json',
+          'Authorization': 'Bearer ' + this.fds2Token
+        })
+      };
+
+      return this.http.put(`${url}/meta/state`, { current: 'PUBLISHED' }, httpOptions).toPromise();
+    }
+  }
+
   getPersistentUrl(): Observable<PersistentUrlResponse> {
     return this.http.get<PersistentUrlResponse>(environment.fdpUrl + '/configs/bootstrap');
   }